pub enum ExitCode { Success, GeneralError, KilledBySigint, } impl Into for ExitCode { fn into(self) -> i32 { match self { ExitCode::Success => 0, ExitCode::GeneralError => 1, ExitCode::KilledBySigint => 130, } } } impl ExitCode { pub fn error_if_any_error(results: Vec) -> Self { if results.iter().any(ExitCode::is_error) { return ExitCode::GeneralError; } ExitCode::Success } fn is_error(&self) -> bool { match self { ExitCode::GeneralError | ExitCode::KilledBySigint => true, _ => false, } } }