summaryrefslogtreecommitdiffstats
path: root/third_party/rust/devd-rs/src/result.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/devd-rs/src/result.rs')
-rw-r--r--third_party/rust/devd-rs/src/result.rs26
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>;