我正在尝试传递一个std::io::BufReader函数的引用,但得到此错误消息std::io::BufReader.
use std::{fs::File, io::BufReader};
struct CompressedMap;
fn parse_cmp(buf: &mut BufReader) -> CompressedMap {
unimplemented!()
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut buf = BufReader::new(File::open("data/nyc.cmp")?);
let map = parse_cmp(&mut buf);
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
A.B*_*.B. 15
看看BufferedReader的实现就清楚了:
impl<R: Read> BufReader<R> {
Run Code Online (Sandbox Code Playgroud)
将您的功能更改为:
use std::io::Read;
fn parse_cmp<R: Read>(buf: &mut BufReader<R>)
Run Code Online (Sandbox Code Playgroud)
您也可以定义具体类型:
fn parse_cmp(buf: &mut BufReader<File>)
Run Code Online (Sandbox Code Playgroud)