fix: resolve compilation errors by standardizing filter signatures and fixing ownership issues
Co-authored-by: aider (openai/andrew/openrouter/sonoma-sky-alpha) <aider@aider.chat>
This commit is contained in:
@@ -70,7 +70,7 @@ impl GrepFilter {
|
||||
/// filter.filter(&mut input, &mut output)?;
|
||||
/// ```
|
||||
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<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
let mut buf_reader = std::io::BufReader::new(reader.as_mut());
|
||||
for line in buf_reader.by_ref().lines() {
|
||||
let line = line?;
|
||||
|
||||
@@ -72,7 +72,7 @@ impl HeadBytesFilter {
|
||||
/// // Input "Hello World" becomes "Hello"
|
||||
/// ```
|
||||
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<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
if self.remaining == 0 {
|
||||
return Ok(());
|
||||
}
|
||||
@@ -182,7 +182,7 @@ impl HeadLinesFilter {
|
||||
/// // Input "Line1\nLine2\nLine3" becomes "Line1\nLine2\n"
|
||||
/// ```
|
||||
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<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
if self.remaining == 0 {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ pub trait FilterPlugin: Send {
|
||||
/// // ... other methods
|
||||
/// }
|
||||
/// ```
|
||||
fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()>;
|
||||
fn filter(&mut self, mut reader: Box<dyn Read>, mut writer: Box<dyn Write>) -> Result<()>;
|
||||
|
||||
/// Clones this plugin into a new boxed instance.
|
||||
///
|
||||
@@ -295,16 +295,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 input: Box<&mut dyn Read> = Box::new(&mut cursor);
|
||||
let input: Box<dyn Read> = Box::new(cursor);
|
||||
|
||||
// For the last plugin, write directly to the output writer
|
||||
if i == plugins_len - 1 {
|
||||
let output: Box<&mut dyn Write> = Box::new(writer);
|
||||
let output: Box<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 output_ref: Box<&mut dyn Write> = Box::new(&mut output);
|
||||
let output_ref: Box<dyn Write> = Box::new(&mut output);
|
||||
self.plugins[i].filter(input, output_ref)?;
|
||||
current_data = output;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ impl FilterPlugin for SkipBytesFilter {
|
||||
/// # Returns
|
||||
///
|
||||
/// Returns `Ok(())` on success, or an `io::Error` if reading or writing fails.
|
||||
fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> {
|
||||
fn filter(&mut self, mut reader: Box<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
// Skip bytes in chunks
|
||||
if self.remaining > 0 {
|
||||
let mut buffer = vec![0; PIPESIZE];
|
||||
@@ -107,7 +107,7 @@ impl FilterPlugin for SkipLinesFilter {
|
||||
/// # Returns
|
||||
///
|
||||
/// Returns `Ok(())` on success, or an `io::Error` if reading or writing fails.
|
||||
fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> {
|
||||
fn filter(&mut self, mut reader: Box<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
let mut buf_reader = std::io::BufReader::new(reader.as_mut());
|
||||
for line in buf_reader.by_ref().lines() {
|
||||
let line = line?;
|
||||
|
||||
@@ -32,7 +32,7 @@ impl FilterPlugin for StripAnsiFilter {
|
||||
/// # Returns
|
||||
///
|
||||
/// Returns `Ok(())` on success, or an `io::Error` if reading or writing fails.
|
||||
fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> {
|
||||
fn filter(&mut self, mut reader: Box<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
let mut ansi_writer = Writer::new(writer.as_mut());
|
||||
std::io::copy(reader.as_mut(), &mut ansi_writer)?;
|
||||
ansi_writer.flush()?;
|
||||
|
||||
@@ -35,7 +35,7 @@ impl FilterPlugin for TailBytesFilter {
|
||||
/// # Returns
|
||||
///
|
||||
/// Returns `Ok(())` on success, or an `io::Error` if reading or writing fails.
|
||||
fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> {
|
||||
fn filter(&mut self, mut reader: Box<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
let mut temp_buffer = vec![0; PIPESIZE];
|
||||
loop {
|
||||
let bytes_read = reader.as_mut().read(&mut temp_buffer)?;
|
||||
@@ -117,7 +117,7 @@ impl FilterPlugin for TailLinesFilter {
|
||||
/// # Returns
|
||||
///
|
||||
/// Returns `Ok(())` on success, or an `io::Error` if reading or writing fails.
|
||||
fn filter(&mut self, reader: Box<&mut dyn Read>, writer: Box<&mut dyn Write>) -> Result<()> {
|
||||
fn filter(&mut self, mut reader: Box<dyn Read>, mut writer: Box<dyn Write>) -> Result<()> {
|
||||
let mut buf_reader = std::io::BufReader::new(reader.as_mut());
|
||||
for line in buf_reader.by_ref().lines() {
|
||||
let line = line?;
|
||||
|
||||
Reference in New Issue
Block a user