Написал функцию:
fn read_str<'a>() -> &'a str {
let mut input = String::new();
io::stdin().read_line(&mut input).ok();
let output : &str = &input[..];
&output
}
При компиляции возникает ошибка
src/main.rs:13:26: 13:31 error: `input` does not live long enough
src/main.rs:13 let output : &str = &input[..];
^~~~~
src/main.rs:10:30: 15:2 note: reference must be valid for the lifetime 'a as defined on the block at 10:29...
src/main.rs:10 fn read_str<'a>() -> &'a str {
src/main.rs:11 let mut input = String::new();
src/main.rs:12 io::stdin().read_line(&mut input).ok();
src/main.rs:13 let output : &str = &input[..];
src/main.rs:14 &output
src/main.rs:15 }
src/main.rs:11:32: 15:2 note: ...but borrowed value is only valid for the block suffix following statement 0 at 11:31
src/main.rs:11 let mut input = String::new();
src/main.rs:12 io::stdin().read_line(&mut input).ok();
src/main.rs:13 let output : &str = &input[..];
src/main.rs:14 &output
src/main.rs:15 }
Пробовал брать строку io::stdin().read_line(&mut input).ok(); в фигурные скобки, дабы ограничить &mut, но это не помогает.