summaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
new file mode 100644
index 0000000..f4db21a
--- /dev/null
+++ b/src/error.rs
@@ -0,0 +1,23 @@
+use quick_error::quick_error;
+
+quick_error! {
+ #[derive(Debug)]
+ pub enum FuseError {
+ Io(err: std::io::Error) { from() }
+ ProtocolInit { display("fuse handshake failed (ancient kernel?)") }
+ Truncated { display("fuse request truncated") }
+ BadOpcode { display("unknown fuse operation") }
+ BadLength { display("bad length in fuse request") }
+ ShortWrite { display("fuse reply was trimmed on write()") }
+ }
+}
+
+quick_error! {
+ #[derive(Debug)]
+ pub enum MountError {
+ Io(err: std::io::Error) { from() }
+ Fusermount { display("fusermount failed") }
+ }
+}
+
+pub type FuseResult<T> = Result<T, FuseError>;