pub fn run(
arguments: &[String],
out: Box<dyn Write>,
err: Box<dyn Write>,
) -> ExitCodeExpand description
The whole program, minus the process it runs in.
out and err are handed in rather than taken from the process so that a test can read what
came out of each without a pipe and without a temporary file.