From 19188fabb9d502429695ed05c4b496155a1f0129 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Wed, 3 Sep 2025 07:49:53 -0300 Subject: [PATCH] feat: Implement `clone_box` for StripAnsiFilter and GrepFilter Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) --- src/filter_plugin/grep.rs | 6 ++++++ src/filter_plugin/mod.rs | 1 + src/filter_plugin/strip_ansi.rs | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/src/filter_plugin/grep.rs b/src/filter_plugin/grep.rs index 4a3a118..bc31445 100644 --- a/src/filter_plugin/grep.rs +++ b/src/filter_plugin/grep.rs @@ -27,4 +27,10 @@ impl FilterPlugin for GrepFilter { } Ok(()) } + + fn clone_box(&self) -> Box { + Box::new(Self { + regex: self.regex.clone(), + }) + } } diff --git a/src/filter_plugin/mod.rs b/src/filter_plugin/mod.rs index ff18e3e..833f972 100644 --- a/src/filter_plugin/mod.rs +++ b/src/filter_plugin/mod.rs @@ -11,6 +11,7 @@ pub mod utils; pub trait FilterPlugin: Send { fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()>; + fn clone_box(&self) -> Box; } #[derive(Debug, EnumString, strum::VariantNames)] diff --git a/src/filter_plugin/strip_ansi.rs b/src/filter_plugin/strip_ansi.rs index 0289d91..afc0d43 100644 --- a/src/filter_plugin/strip_ansi.rs +++ b/src/filter_plugin/strip_ansi.rs @@ -16,4 +16,8 @@ impl FilterPlugin for StripAnsiFilter { std::io::copy(&mut *reader, &mut ansi_writer)?; ansi_writer.flush() } + + fn clone_box(&self) -> Box { + Box::new(Self) + } }