From bd76e84ea2af82b0f3b584778609bf0def20620f Mon Sep 17 00:00:00 2001 From: xtqqczze <45661989+xtqqczze@users.noreply.github.com> Date: Mon, 20 Apr 2026 12:15:35 +0100 Subject: [PATCH] refactor(tee): implement Copy for OutputErrorMode --- src/uu/tee/src/cli.rs | 2 +- src/uu/tee/src/tee.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/uu/tee/src/cli.rs b/src/uu/tee/src/cli.rs index 9ad544050..68fe5f4f1 100644 --- a/src/uu/tee/src/cli.rs +++ b/src/uu/tee/src/cli.rs @@ -18,7 +18,7 @@ pub mod options { pub const OUTPUT_ERROR: &str = "output-error"; } -#[derive(Clone, Debug)] +#[derive(Clone, Copy, Debug)] pub enum OutputErrorMode { /// Diagnose write error on any output Warn, diff --git a/src/uu/tee/src/tee.rs b/src/uu/tee/src/tee.rs index b0c8a690d..95030e793 100644 --- a/src/uu/tee/src/tee.rs +++ b/src/uu/tee/src/tee.rs @@ -84,7 +84,7 @@ fn tee(options: &Options) -> Result<()> { }, ); - let mut output = MultiWriter::new(writers, options.output_error.clone()); + let mut output = MultiWriter::new(writers, options.output_error); let input = NamedReader { inner: stdin() }; #[cfg(target_os = "linux")] @@ -197,7 +197,7 @@ impl MultiWriter { } fn process_error( - mode: Option<&OutputErrorMode>, + mode: Option, e: Error, writer: &NamedWriter, ignored_errors: &mut usize, @@ -222,8 +222,8 @@ fn process_error( impl Write for MultiWriter { fn write(&mut self, buf: &[u8]) -> Result { let mut aborted = None; - let mode = self.output_error_mode.clone(); let mut errors = 0; + let mode = self.output_error_mode; self.writers.retain_mut(|writer| { let res = (|| { writer.write_all(buf)?; @@ -232,7 +232,7 @@ impl Write for MultiWriter { match res { Ok(()) => true, Err(e) => { - if let Err(e) = process_error(mode.as_ref(), e, writer, &mut errors) { + if let Err(e) = process_error(mode, e, writer, &mut errors) { aborted.get_or_insert(e); } false