use std::io::Write; use derive_more::{Deref, DerefMut}; /// A wrapper around a child process's stdin that implements the Write trait. /// /// This struct allows writing data to an external process's standard input /// in a way that's compatible with Rust's I/O traits. #[derive(Deref, DerefMut)] pub struct ProgramWriter { /// The stdin handle of a spawned child process #[deref] #[deref_mut] pub 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() } }