Nothing to see here, move along
1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
2pub enum FsError {
3 Io(u16),
4 CacheFull,
5 FreemapExhausted,
6 InvalidBlock,
7 CorruptSuperblock,
8 CorruptNode,
9 ReservedExhausted,
10 NotFound,
11 RingFull,
12 PoolExhausted,
13 TreeFull,
14 DuplicateKey,
15 KeyNotFound,
16 DecompressError,
17 DirectoryNotEmpty,
18 NameTooLong,
19 SymlinkDepthExceeded,
20 NotADirectory,
21 NotAFile,
22 IsADirectory,
23 FileExists,
24 InvalidName,
25 PathTooDeep,
26 IntegrityFailure,
27 InsufficientRights,
28 StaleGeneration,
29 HandleTableFull,
30 InvalidHandle,
31 DoubleFree,
32}
33
34impl From<crate::cap::CapError> for FsError {
35 fn from(e: crate::cap::CapError) -> Self {
36 match e {
37 crate::cap::CapError::InsufficientRights => FsError::InsufficientRights,
38 crate::cap::CapError::StaleGeneration => FsError::StaleGeneration,
39 crate::cap::CapError::InvalidHandle => FsError::InvalidHandle,
40 crate::cap::CapError::HandleTableFull => FsError::HandleTableFull,
41 crate::cap::CapError::NotADirectory => FsError::NotADirectory,
42 crate::cap::CapError::PathTooDeep => FsError::PathTooDeep,
43 }
44 }
45}
46
47#[derive(Debug, Clone, Copy, PartialEq, Eq)]
48pub enum IntegrityError {
49 CrcMismatch { block_num: u64 },
50 HashMismatch { block_num: u64 },
51 TreeCorrupt,
52 KeyNotInTree,
53 Io(FsError),
54}