1use thiserror::Error;
2
3pub type FuseResult<T> = Result<T, FuseError>;
4
5#[derive(Debug, Error)]
6#[non_exhaustive]
7pub enum FuseError {
8 #[error("I/O error")]
9 Io(#[from] std::io::Error),
10
11 #[error("fuse handshake failed (ancient kernel?)")]
12 ProtocolInit,
13
14 #[error("fuse request truncated")]
15 Truncated,
16
17 #[error("unknown fuse operation")]
18 BadOpcode,
19
20 #[error("bad length in fuse request")]
21 BadLength,
22
23 #[error("fuse reply was trimmed on write()")]
24 ShortWrite,
25}
26
27#[derive(Debug, Error)]
28#[non_exhaustive]
29pub enum MountError {
30 #[error("I/O error during mount")]
31 Io(#[from] std::io::Error),
32
33 #[error("fusermount failed")]
34 Fusermount,
35}