use super::expression::Expression; use super::shell::Shell; use std::fmt::Write; #[derive(Debug)] pub(crate) struct Call { binary: Box<&'static str>, args: Vec<&'static str>, } impl Call { pub(crate) fn new(binary: &'static str, args: Vec<&'static str>) -> Self { Self { binary: Box::from(binary), args, } } } impl Expression for Call { fn write_shell(&self, writer: &mut impl Write) -> std::fmt::Result { write!(writer, "{}", self.binary)?; for arg in &self.args { write!(writer, " {}", arg)?; } Ok(()) } }