From e1a5dbf0f11e67c8aebc349a3c6ff7f8aa7c9521 Mon Sep 17 00:00:00 2001 From: "Andrew Phillips (aider)" Date: Thu, 22 May 2025 09:48:19 -0300 Subject: [PATCH] refactor: move ProgramWriter to common.rs --- src/common.rs | 15 +++++++++++++++ src/digest_engine.rs | 15 --------------- src/digest_engine/program.rs | 2 +- src/meta_plugin.rs | 15 --------------- src/meta_plugin/program.rs | 4 +++- 5 files changed, 19 insertions(+), 32 deletions(-) create mode 100644 src/common.rs diff --git a/src/common.rs b/src/common.rs new file mode 100644 index 0000000..43ea64e --- /dev/null +++ b/src/common.rs @@ -0,0 +1,15 @@ +use std::io::Write; + +pub struct ProgramWriter { + stdin: std::process::ChildStdin, +} + +impl Write for ProgramWriter { + fn write(&mut self, buf: &[u8]) -> std::io::Result { + self.stdin.write(buf) + } + + fn flush(&mut self) -> std::io::Result<()> { + self.stdin.flush() + } +} diff --git a/src/digest_engine.rs b/src/digest_engine.rs index 405f292..e9dc26f 100644 --- a/src/digest_engine.rs +++ b/src/digest_engine.rs @@ -38,21 +38,6 @@ pub trait DigestEngine { use std::io::Write; -// Writer that implements Write for the program digest engine -struct ProgramWriter { - stdin: std::process::ChildStdin, -} - -impl Write for ProgramWriter { - fn write(&mut self, buf: &[u8]) -> std::io::Result { - self.stdin.write(buf) - } - - fn flush(&mut self) -> std::io::Result<()> { - self.stdin.flush() - } -} - lazy_static! { pub static ref DIGEST_PROGRAMS: EnumMap> = enum_map! { DigestType::Sha256 => None, diff --git a/src/digest_engine/program.rs b/src/digest_engine/program.rs index 0f94b92..6d4c439 100644 --- a/src/digest_engine/program.rs +++ b/src/digest_engine/program.rs @@ -1,4 +1,4 @@ -use crate::digest_engine::ProgramWriter; +use crate::common::ProgramWriter; use anyhow::{Context, Result, anyhow}; use log::*; use std::env; diff --git a/src/meta_plugin.rs b/src/meta_plugin.rs index d734353..06c54c3 100644 --- a/src/meta_plugin.rs +++ b/src/meta_plugin.rs @@ -35,21 +35,6 @@ pub trait MetaPlugin { use std::io::Write; -// Writer that implements Write for the program meta plugin -struct ProgramWriter { - stdin: std::process::ChildStdin, -} - -impl Write for ProgramWriter { - fn write(&mut self, buf: &[u8]) -> std::io::Result { - self.stdin.write(buf) - } - - fn flush(&mut self) -> std::io::Result<()> { - self.stdin.flush() - } -} - lazy_static! { pub static ref META_PLUGIN_PROGRAMS: EnumMap> = enum_map! { MetaPluginType::File => { diff --git a/src/meta_plugin/program.rs b/src/meta_plugin/program.rs index 6fb51c5..80fb5e9 100644 --- a/src/meta_plugin/program.rs +++ b/src/meta_plugin/program.rs @@ -1,4 +1,4 @@ -use crate::meta_plugin::MetaPlugin; +use crate::common::ProgramWriter; use anyhow::{Context, Result, anyhow}; use log::*; use std::env; @@ -8,6 +8,8 @@ use std::io::Write; use std::os::unix::fs::PermissionsExt; use std::process::{Command, Stdio}; +use crate::meta_plugin::MetaPlugin; + #[derive(Clone, Debug)] pub struct MetaPluginProgram { pub program: String,