#[non_exhaustive]pub enum ApfsError {
Io(Error),
NoValidSuperblock {
checked: usize,
last_magic: u32,
},
ChecksumMismatch {
block: u64,
stored: u64,
computed: u64,
},
OmapUnresolved {
oid: u64,
xid: u64,
},
UnexpectedObjectType {
structure: &'static str,
expected: u32,
found: u32,
},
UnsupportedFusion,
UnsupportedSpacemanCab {
count: u64,
},
FieldOutOfRange {
structure: &'static str,
field: &'static str,
value: u64,
cap: u64,
},
CycleGuard {
cap: usize,
},
CheckpointTreeUnsupported {
area: &'static str,
},
SnapshotNotFound {
xid: u64,
},
Decmpfs(&'static str),
}Expand description
Errors surfaced by the reader. Bootstrap failures (no valid superblock, omap unresolvable) are loud, named variants — never silently absorbed into an empty result (fleet fail-loud-on-bootstrap rule).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Io(Error)
Underlying I/O error.
NoValidSuperblock
No valid container superblock (NXSB) found in the checkpoint ring — a bootstrap failure, carries what was seen so the examiner can diagnose.
ChecksumMismatch
Object Fletcher-64 checksum did not validate.
OmapUnresolved
An object map could not resolve a virtual oid at the requested xid.
UnexpectedObjectType
A block did not carry the expected object type — a short block, a
wrong-typed object, or corruption. Carries the offending raw o_type
(fleet “show the unrecognized value” rule).
UnsupportedFusion
A Fusion container was encountered but Fusion address translation is not yet supported — fail loud rather than mis-read physical addresses.
UnsupportedSpacemanCab
The space manager uses chunk-info address blocks (sm_cab_count > 0),
the multi-TB CAB indirection tier, which is not yet implemented — fail
loud rather than mis-resolve an allocation chunk. Carries the count.
FieldOutOfRange
A length/offset/count field from the image exceeded a sanity cap (allocation-bomb / corruption defense). Carries the offending value.
CycleGuard
A tree walk exceeded the cycle-guard depth (malicious/cyclic oid graph).
CheckpointTreeUnsupported
The checkpoint descriptor or data area is stored as a B-tree (high bit of
nx_xp_{desc,data}_blocks set), which needs B-tree resolution not yet
implemented — fail loud rather than mis-read a tree oid as a base address.
SnapshotNotFound
A snapshot mount was requested for a transaction id that names neither the live volume nor any retained snapshot — fail loud with the offending xid rather than silently mounting the wrong (or live) state.
Decmpfs(&'static str)
A transparently-compressed file’s com.apple.decmpfs payload could not be
decoded — a named codec/format failure (unknown/unsupported compression
type, malformed header, codec rejection, or a length mismatch). The reader
refuses rather than returning plausible-but-wrong bytes (fail-loud:
fabricating file content in a forensic tool is the worst failure).
Trait Implementations§
Source§impl Error for ApfsError
impl Error for ApfsError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()