【发布时间】:2015-01-25 11:32:13
【问题描述】:
我应该使用什么类型将 BufferedReader 行迭代器存储在结构中?这是我尝试过的:
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);
}
编译失败,输出如下:
/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 版本:rustc 0.13.0-nightly (eedfc0779 2014-11-25 22:36:59 +0000)
【问题讨论】:
标签: rust