Why is &mut x active through out main, it shouldn't be active after last reference?
I am getting borrowing error even though. Why is &mut x active through out main, it shouldn't be active after last reference?
pub fn strtok<'a>(s: &'a mut &'a str, delimiter: char) -> &'a str {
if let Some(i) = s.find(delimiter) {
let prefix = &s[..i];
*s = &s[i + delimiter.len_utf8()..];
prefix
} else {
let prefix = *s;
*s = "";
prefix
}
}
fn main() {
let mut x = "hello world";
strtok(&mut x, ' ');
assert_eq!(x, "world");
}