Invalid number of type arguments: expected 1, but found 0

I am trying to pass a std::io::BufferedReader link to a function, but I get this error message wrong number of type arguments: expected 1 but found 0 .

 fn parse_cmp(buf: &mut BufferedReader) -> cmp::CompressedMap { ... } fn main() { let path = Path::new("data/nyc.cmp"); let mut buf = BufferedReader::new(File::open(&path)); let map = parse_cmp(&buf); } 

What am I missing here?

+6
source share
1 answer

A look at the implementation of BufferedReader makes it clear:

 impl<R: Reader> BufferedReader<R> 

Change your function to:

 fn parse_cmp<R: Reader>(buf: &mut BufferedReader<R>) 

Instead, you can define a specific type:

 fn parse_cmp(buf: &mut BufferedReader<File>) 
+12
source

Source: https://habr.com/ru/post/973719/


All Articles