Я пытаюсь привести Stdout
к Write
:
use std::io::{self, Write};
pub struct A<Output: Write> {
output: Output,
}
impl<Output: Write> A<Output> {
pub fn new() -> A<Output> {
A {
output: io::stdout() as Write,
}
}
}
Компилятор жалуется:
error[E0620]: cast to unsized type: `std::io::Stdout` as `std::io::Write`
--> src/main.rs:10:21
|
10 | output: io::stdout() as Write,
| ^^^^^^^^^^^^^^^^^^^^^
|
help: consider using a box or reference as appropriate
--> src/main.rs:10:21
|
10 | output: io::stdout() as Write,
| ^^^^^^^^^^^^
Я хочу привести это и попытался сделать то, чтокомпилятор предложил, но затем он говорит, что ключевое слово as
может использоваться только для примитивов, и что я должен реализовать черту From
.
Как я могу разыграть Stdout
как черту Write
?