pub trait CmdRun { fn run(&mut self) -> Result<(), CmdSpawnError>; }
spawn and wait child process
spawn
wait
command.run() can result in CmdSpawnError:
CmdSpawnError
CmdSpawnError::IO(std::io::Error)
CmdSpawnError::Child(ChildError)