//! Shared plugin utilities for the keep application. //! //! This module provides common functionality that can be used by different //! plugin implementations throughout the application. use std::io::Write; /// 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. pub struct ProgramWriter { /// The stdin handle of a spawned child process 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() } }