use uucore::error::UError;
pub(crate) enum ExitStatus {
CommandTimedOut,
TimeoutFailed,
CannotInvoke,
CommandNotFound,
SignalSent(usize),
}
impl From<ExitStatus> for i32 {
fn from(exit_status: ExitStatus) -> Self {
match exit_status {
ExitStatus::CommandTimedOut => 124,
ExitStatus::TimeoutFailed => 125,
ExitStatus::CannotInvoke => 126,
ExitStatus::CommandNotFound => 127,
ExitStatus::SignalSent(s) => 128 + s as Self,
}
}
}
impl From<ExitStatus> for Box<dyn UError> {
fn from(exit_status: ExitStatus) -> Self {
Box::from(i32::from(exit_status))
}
}