pub trait PrintStatus { fn print_status_into(&self, out: &mut impl std::io::Write) -> Result<(), std::io::Error>; fn print_status(&self) { if let Err(e) = self.print_status_into(&mut std::io::stdout()) { eprintln!("Unexpected print error: {:?}", e); } } }