diff options
Diffstat (limited to 'third_party/rust/devd-rs/src/result.rs')
-rw-r--r-- | third_party/rust/devd-rs/src/result.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/third_party/rust/devd-rs/src/result.rs b/third_party/rust/devd-rs/src/result.rs new file mode 100644 index 0000000000..2b47b8012c --- /dev/null +++ b/third_party/rust/devd-rs/src/result.rs @@ -0,0 +1,26 @@ +use std::{io, result}; + +#[derive(Debug)] +pub enum Error { + IoError(io::Error), + Timeout, + Parse, +} + +impl From<Error> for io::Error { + fn from(val: Error) -> Self { + match val { + Error::IoError(e) => e, + Error::Timeout => io::Error::new(io::ErrorKind::Other, "devd poll timeout"), + Error::Parse => io::Error::new(io::ErrorKind::Other, "devd parse error"), + } + } +} + +impl From<io::Error> for Error { + fn from(err: io::Error) -> Error { + Error::IoError(err) + } +} + +pub type Result<T> = result::Result<T, Error>; |