繁体   English   中英

如何返回包裹在 Result 中的 impl trait?

[英]How to return impl trait wrapped inside Result?

我有一个函数可以从文件或网络中读取一些内容,然后返回内容。 为简单起见,让我们使用以下仅用于文件的内容:

fn test() -> Result<Vec<u8>, Error> {
    let mut buf = Vec::new();
    // Does some things that may error ...
    File::open("test.txt")?.read_to_end(&mut buf)?;
    Ok(buf)
}

是否可以编写此函数,使其返回包装在ResultRead特征,而不需要立即将全部内容读入内存?

如何返回包裹在 Result 中的 impl trait?

通过返回一个包裹在Result的 impl trait

use std::{
    fs::File,
    io::{self, Read},
};

fn test() -> io::Result<impl Read> {
    let f = File::open("test.txt")?;
    Ok(f)
}

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM