blob: df13787aad69820c43666b14328efb0dcc86b5db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
fn main() {
let mut state = State { prev: None, next: Some(8) };
let path = "/nested/some/more";
assert_eq!(state.rest(path), "some/more");
}
#[allow(unused)]
struct State {
prev: Option<usize>,
next: Option<usize>,
}
impl State {
fn rest<'r>(&mut self, path: &'r str) -> &'r str {
let start = match self.next.take() {
Some(v) => v,
None => return "",
};
self.prev = Some(start);
&path[start..]
}
}
|