diff --git a/src/filter_plugin/grep.rs b/src/filter_plugin/grep.rs index d06594a..4a3a118 100644 --- a/src/filter_plugin/grep.rs +++ b/src/filter_plugin/grep.rs @@ -17,7 +17,7 @@ impl GrepFilter { } impl FilterPlugin for GrepFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { let mut buf_reader = std::io::BufReader::new(&mut *reader); for line in buf_reader.by_ref().lines() { let line = line?; diff --git a/src/filter_plugin/head.rs b/src/filter_plugin/head.rs index b07f58e..25cef4c 100644 --- a/src/filter_plugin/head.rs +++ b/src/filter_plugin/head.rs @@ -15,7 +15,7 @@ impl HeadBytesFilter { } impl FilterPlugin for HeadBytesFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { if self.remaining == 0 { return Ok(()); } @@ -47,7 +47,7 @@ impl HeadLinesFilter { } impl FilterPlugin for HeadLinesFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { if self.remaining == 0 { return Ok(()); } diff --git a/src/filter_plugin/mod.rs b/src/filter_plugin/mod.rs index e021beb..245f7e3 100644 --- a/src/filter_plugin/mod.rs +++ b/src/filter_plugin/mod.rs @@ -8,7 +8,7 @@ pub mod strip_ansi; pub mod utils; pub trait FilterPlugin: Send { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()>; + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()>; } pub struct FilterChain { @@ -44,16 +44,16 @@ impl FilterChain { for i in 0..plugins_len { // Create a cursor for the current data let mut cursor = std::io::Cursor::new(¤t_data); - let mut input: Box<&mut dyn Read> = Box::new(&mut cursor); + let input: Box<&mut dyn Read> = Box::new(&mut cursor); // For the last plugin, write directly to the output writer if i == plugins_len - 1 { - let mut output: Box<&mut dyn Write> = Box::new(writer); + let output: Box<&mut dyn Write> = Box::new(writer); self.plugins[i].filter(input, output)?; } else { // For intermediate plugins, write to a buffer let mut output = Vec::new(); - let mut output_ref: Box<&mut dyn Write> = Box::new(&mut output); + let output_ref: Box<&mut dyn Write> = Box::new(&mut output); self.plugins[i].filter(input, output_ref)?; current_data = output; } diff --git a/src/filter_plugin/skip.rs b/src/filter_plugin/skip.rs index efd02d6..bd014c6 100644 --- a/src/filter_plugin/skip.rs +++ b/src/filter_plugin/skip.rs @@ -15,7 +15,7 @@ impl SkipBytesFilter { } impl FilterPlugin for SkipBytesFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { // Skip bytes in chunks if self.remaining > 0 { let mut buffer = vec![0; PIPESIZE]; @@ -48,7 +48,7 @@ impl SkipLinesFilter { } impl FilterPlugin for SkipLinesFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { let mut buf_reader = std::io::BufReader::new(&mut *reader); for line in buf_reader.by_ref().lines() { let line = line?; diff --git a/src/filter_plugin/strip_ansi.rs b/src/filter_plugin/strip_ansi.rs index e295d81..0289d91 100644 --- a/src/filter_plugin/strip_ansi.rs +++ b/src/filter_plugin/strip_ansi.rs @@ -11,7 +11,7 @@ impl StripAnsiFilter { } impl FilterPlugin for StripAnsiFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { let mut ansi_writer = Writer::new(&mut *writer); std::io::copy(&mut *reader, &mut ansi_writer)?; ansi_writer.flush() diff --git a/src/filter_plugin/tail.rs b/src/filter_plugin/tail.rs index cafb903..5b02a8b 100644 --- a/src/filter_plugin/tail.rs +++ b/src/filter_plugin/tail.rs @@ -18,7 +18,7 @@ impl TailBytesFilter { } impl FilterPlugin for TailBytesFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { let mut temp_buffer = vec![0; PIPESIZE]; loop { let bytes_read = (&mut *reader).read(&mut temp_buffer)?; @@ -57,7 +57,7 @@ impl TailLinesFilter { } impl FilterPlugin for TailLinesFilter { - fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> { + fn filter(&mut self, mut reader: Box<&mut dyn Read>, mut writer: Box<&mut dyn Write>) -> Result<()> { let mut buf_reader = std::io::BufReader::new(&mut *reader); for line in buf_reader.by_ref().lines() { let line = line?;