Я пытаюсь преобразовать str
в Reader
и терпеть неудачу.Корневая управляемая величина в Rust
Что ниже кода делает это извлечение чтения из str
с помощью with_str_reader
use std::io::{with_str_reader,Reader};
pub struct ReadSource<'self> {
priv source: &'self Reader
}
impl<'self> ReadSource<'self> {
fn from_str(data: &'self str) -> ReadSource<'self>{
let r = std::io::with_str_reader(data, |reader| { reader });
ReadSource{
source : r
}
}
}
fn main() {
//Ignore
}
Что я получаю, когда работает следующая
test.rs:12:21: 12:22 error: cannot root managed value long enough
test.rs:12 source : r
^
test.rs:9:54: 14:5 note: managed value would have to be rooted for the lifetime &'self as defined on the block at 9:54...
test.rs:9 fn from_str(data: &'self str) -> ReadSource<'self>{
test.rs:10 let r = std::io::with_str_reader(data, |reader| { reader });
test.rs:11 ReadSource{
test.rs:12 source : r
test.rs:13 }
test.rs:14 }
Я знаю, что я должен бросить что-то, с чувством собственного времени жизни, но я «Не знаете, что ?!
Так что мне нужно использовать «BytesReader» в качестве Reader, правильно? –
@ DanielFath: Я не знаю; Я не работал с ним и не успел понять это сейчас. В текущем главном ветви вы будете использовать новый материал времени выполнения, который в любом случае несколько отличается. –
Когда эти земли изменились? Я спрашиваю, потому что я собрал из источника примерно две недели назад. Есть ли примеры новой среды выполнения? –