tipos que importancia ejemplos argumentos argumento argumentar argumentacion rust

rust - que - tipos de argumentos



NĂºmero incorrecto de argumentos de tipo: esperado 1 pero encontrado 0 (1)

Estoy tratando de pasar una referencia de std::io::BufferedReader a una función, pero obtengo este mensaje de 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); }

¿Que me estoy perdiendo aqui?


Una mirada a la implementación de BufferedReader lo deja en claro:

impl<R: Reader> BufferedReader<R>

Cambie su función a:

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

También puede definir un tipo concreto:

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