我有一个函数,可以从文件或网络中读取某些内容,然后返回内容。为简单起见,让我们使用仅用于文件的以下内容:
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)
}
是否可以编写此函数,使其返回包裹在Read
中的Result
特征,这样就不必立即将全部内容读入内存中?
答案 0 :(得分:2)
如何返回包装在Result中的impl特性?
通过返回包装在Result
中的impl特质:
use std::{
fs::File,
io::{self, Read},
};
fn test() -> io::Result<impl Read> {
let f = File::open("test.txt")?;
Ok(f)
}
另请参阅: