diff --git a/src/uu/tee/src/tee.rs b/src/uu/tee/src/tee.rs index f4a5876ee4f..3678f818ac0 100644 --- a/src/uu/tee/src/tee.rs +++ b/src/uu/tee/src/tee.rs @@ -80,7 +80,7 @@ fn tee(options: &Options) -> Result<()> { 0, NamedWriter { name: translate!("tee-standard-output").into(), - inner: Writer::Stdout(stdout()), + inner: stdout().into(), }, ); @@ -127,7 +127,7 @@ fn open( }; match mode.write(true).create(true).open(path.as_path()) { Ok(file) => Some(Ok(NamedWriter { - inner: Writer::File(file), + inner: file.into(), name: name.clone(), })), Err(f) => { @@ -254,6 +254,18 @@ enum Writer { Stdout(std::io::Stdout), } +impl From for Writer { + fn from(value: std::fs::File) -> Self { + Self::File(value) + } +} + +impl From for Writer { + fn from(value: std::io::Stdout) -> Self { + Self::Stdout(value) + } +} + impl Write for Writer { fn write(&mut self, buf: &[u8]) -> Result { match self {