diff options
Diffstat (limited to 'src/wait/error.rs')
-rw-r--r-- | src/wait/error.rs | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/wait/error.rs b/src/wait/error.rs index 169097d..fb489f5 100644 --- a/src/wait/error.rs +++ b/src/wait/error.rs @@ -5,7 +5,7 @@ use std::time::Duration; pub struct ProcessSignalInfo { pub pid: nix::unistd::Pid, pub signal: nix::sys::signal::Signal, - pub coredump: bool + pub coredump: bool, } #[derive(Debug)] @@ -14,10 +14,9 @@ pub enum WaitError { ReturnNonZero(i32, nix::unistd::Pid), Signaled(ProcessSignalInfo), OsError(nix::Error), - NotExited + NotExited, } - impl From<nix::Error> for WaitError { fn from(err: nix::Error) -> Self { WaitError::OsError(err) @@ -28,13 +27,20 @@ impl std::fmt::Display for WaitError { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match *self { WaitError::TimedOut(dur) => write!(f, "process timed out in {:?}", dur), - WaitError::ReturnNonZero(ret, pid) => - write!(f, "process exited with non-zero exit code ({}). was {}", ret, pid), - WaitError::Signaled(ref info) => - write!(f, "process killed by {} {}. was {}", - info.signal, if info.coredump {"(core dumped)"} else {""}, info.pid), + WaitError::ReturnNonZero(ret, pid) => write!( + f, + "process exited with non-zero exit code ({}). was {}", + ret, pid + ), + WaitError::Signaled(ref info) => write!( + f, + "process killed by {} {}. was {}", + info.signal, + if info.coredump { "(core dumped)" } else { "" }, + info.pid + ), WaitError::OsError(err) => err.fmt(f), - WaitError::NotExited => write!(f, "process signaled, but not exited") + WaitError::NotExited => write!(f, "process signaled, but not exited"), } } } @@ -42,11 +48,11 @@ impl std::fmt::Display for WaitError { impl std::error::Error for WaitError { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { match *self { - WaitError::TimedOut(_) | - WaitError::ReturnNonZero(_, _) | - WaitError::Signaled(_) | - WaitError::NotExited => None, - WaitError::OsError(ref e) => Some(e) + WaitError::TimedOut(_) + | WaitError::ReturnNonZero(_, _) + | WaitError::Signaled(_) + | WaitError::NotExited => None, + WaitError::OsError(ref e) => Some(e), } } -}
\ No newline at end of file +} |