具体来说,我想将File::open()
或io::Read
用作use std::io::{self, Error};
use std::fs::File;
struct Config<T: io::Read> {
source: T,
dest: T,
}
impl<T> Config<T>
where
T: io::Read,
{
fn new(args: &[String]) -> Result<Config, Box<Error>> {
if args.len() == 1 {
Ok(Config {
source: io::stdin(),
dest: io::stdout(),
})
} else if args.len() == 2 {
Ok(Config {
source: File::open(args[1])?,
dest: io::stdout(),
})
}
}
}
fn main() {
let mut config = Config::new(&[""]);
}
。
我是Rust的新手,可能会遗漏一些概念,但我无法找到有关如何返回包含特征的结构的任何文档。
我想要实现的例子:
error[E0243]: wrong number of type arguments: expected 1, found 0
--> src/main.rs:13:39
|
13 | fn new(args: &[String]) -> Result<Config, Box<Error>> {
| ^^^^^^ expected 1 type argument
这给了我以下错误:
{{1}}