![](/img/trans.png)
[英]How to use `Fn` trait with return type of `impl trait` in Rust?
[英]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)
}
是否可以编写此函数,使其返回包装在Result
的Read
特征,而不需要立即将全部内容读入内存?
如何返回包裹在 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.