Я пытаюсь передать динамический c размер bufstream :: BufStream в функцию. Я могу читать и записывать в буфер, где я его определяю, но не могу передать его любой другой функции.
pub fn dir(mut stream: BufStream<dyn Write>) -> Result<(), Box<dyn Error>> {
for entry in glob("\\**").expect("Failed to read glob pattern") {
match entry {
Ok(entry) => {
stream.write(b"\r\n");
match entry.to_str() {
None => continue,
Some(e) => {
stream.write(e.as_bytes())?;
println!("{}", e);
stream.flush().unwrap();
}
};
}
Err(e) => println!("{:?}", e)
};
}
Ok(())
}
вызов функции:
fn handle_connection(mut stream: TcpStream) -> Result<(), Box<dyn Error>>{
let mut buffer = BufStream::new(&mut stream);
dir(buffer);
Ошибка:
ошибка [E0277]: размер для значений типа (dyn std::io::Write + 'static)
не может быть известен при компиляции время
есть идеи?