Я хочу создать экземпляр переменной, которую я передам в функцию, которая принимает T: Write
. Она будет определяться следующим образом:Как определить переменную, которая соответствует признаку в Rust?
let outputFile = match matches.opt_str("o") {
Some(fileName) => File::create(fileName).expect("could not open output file"),
None => std::io::stdout()
};
В настоящее время, компилятор будет жаловаться на несовпадающих типов в руках (File
против Stdout
). Все, что я хочу, - объявить outputFile
как нечто, что я могу назвать любым способом из черты Write
, и ничего больше.
Может ли Rust разрешить это делать или мне нужно привести все это выражение match
в качестве параметра, который нужно передать в эту функцию?