What type should I use to store a BufferedReader line iterator in a structure? Here's what I tried:
struct S<'a, R: 'a> {
iter: std::io::Lines<'a, std::io::buffered::BufferedReader<R>>
}
pub fn read<'a, A, R: std::io::Reader>(reader: R) -> S<'a, R> {
let mut br = std::io::BufferedReader::new(reader);
S { iter: br.lines() }
}
#[test]
fn test() {
let mut reader = std::io::BufReader::new("test".as_bytes());
read(reader);
}
Compile fails with this output:
/home/nicholasbishop/rust-so-test-00/src/lib.rs:11:30: 11:66 error: struct `BufferedReader` is private
/home/nicholasbishop/rust-so-test-00/src/lib.rs:11 iter: std::io::Lines<'a, std::io::buffered::BufferedReader<R>>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to previous error
Build failed, waiting for other jobs to finish...
/home/nicholasbishop/rust-so-test-00/src/lib.rs:22:5: 22:9 error: unable to infer enough type information about `_`; type annotations required
/home/nicholasbishop/rust-so-test-00/src/lib.rs:22 read(reader);
^~~~
rustc version: rustc 0.13.0-nightly (eedfc0779 2014-11-25 22:36:59 +0000)