rust - передать функцию динамического размера c в функцию - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь передать динамический 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) не может быть известен при компиляции время

есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...