Компилирование следующего фрагмента:
use std::env;
fn main() {
let base = env::home_dir()
.map(|p| p.join(".foo"))
.map(|p| p.join("bar"))
.map(|p| p.display())
.expect("dir not loadable");
println!("Name: {}", base)
}
Я получаю ошибку:
error[E0597]: `p` does not live long enough
--> src/main.rs:7:18
|
7 | .map(|p| p.display())
| ^ - `p` dropped here while still borrowed
| |
| borrowed value does not live long enough
...
18 | }
| - borrowed value needs to live until here
В чем причина этой ошибки? Какое решение?