#[non_exhaustive]pub enum AnomalyKind {
Show 23 variants
ObjectChecksumMismatch {
block: u64,
stored: u64,
computed: u64,
},
OmapInconsistent {
oid: u64,
xid: u64,
},
OmapOrphanMapping {
oid: u64,
},
CheckpointRingMalformed {
detail: &'static str,
},
CheckpointSupersededState {
xid: u64,
},
SnapshotXidDisorder {
xid: u64,
},
SnapshotMissingMetadata {
name: String,
},
SnapshotDivergence {
inode: u64,
},
SealedVolumeHashMismatch {
inode: u64,
},
SealedVolumeBroken {
broken_xid: u64,
},
DeletedInodeRecoverable {
oid: u64,
},
DeletedExtentCarveCandidate {
block: u64,
},
ReaperPendingObject {
oid: u64,
},
CloneSharedExtent {
inode_a: u64,
inode_b: u64,
},
CloneFlagWithoutSharing {
inode: u64,
},
EncryptionLocked,
EncryptionState {
detail: String,
},
EncryptionKeybagAnomaly {
raw_tag: u8,
offset: u64,
},
TimestampZeroed {
inode: u64,
},
TimestampOrder {
inode: u64,
},
XidReuse {
oid: u64,
xid: u64,
},
OrphanInode {
oid: u64,
},
VolumeRoleMismatch {
detail: String,
},
}Expand description
The APFS-specific anomalies this analyzer can surface. Each variant maps to a
published, scheme-prefixed SCREAMING-KEBAB code (never changed once
shipped; new variants get new codes).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ObjectChecksumMismatch
APFS-OBJECT-CKSUM-MISMATCH — Fletcher-64 over an object body ≠ stored
o_cksum. Carries the block, stored, and computed values.
OmapInconsistent
APFS-OMAP-INCONSISTENT — omap maps a virtual oid to a paddr whose
object oid/xid/type disagrees.
OmapOrphanMapping
APFS-OMAP-ORPHAN-MAPPING (Info) — omap entry for a block not referable
from any live tree (FP-prone without a full reachability model).
CheckpointRingMalformed
APFS-CHECKPOINT-RING-MALFORMED — structurally invalid checkpoint ring
(no cksum-valid NXSB, bad magic, wrap/index inconsistency).
CheckpointSupersededState
APFS-CHECKPOINT-SUPERSEDED-STATE (Info) — recoverable prior state in a
non-latest checkpoint (normal copy-on-write residue).
SnapshotXidDisorder
APFS-SNAPSHOT-XID-DISORDER (Info) — snapshot xids inconsistent with
create_time ordering.
SnapshotMissingMetadata
APFS-SNAPSHOT-MISSING-METADATA — snap-name without snap-metadata (or
vice-versa).
SnapshotDivergence
APFS-SNAPSHOT-DIVERGENCE (Info) — a snapshot’s inode view differs from
the live volume.
SealedVolumeHashMismatch
APFS-SEALED-VOLUME-HASH-MISMATCH — sealed-volume file-info hash ≠
recomputed content hash (a hash-metadata mismatch, not a trust verdict).
SealedVolumeBroken
APFS-SEALED-VOLUME-BROKEN — integrity_meta_phys.im_broken_xid set.
DeletedInodeRecoverable
APFS-DELETED-INODE-RECOVERABLE — superseded inode/dir record still in an
older checkpoint / unreaped block.
DeletedExtentCarveCandidate
APFS-DELETED-EXTENT-CARVE-CANDIDATE (Low) — extent blocks marked free
(carve candidate, NOT a recoverability guarantee).
ReaperPendingObject
APFS-REAPER-PENDING-OBJECT (Low) — object queued in the reaper.
APFS-CLONE-SHARED-EXTENT (Info) — inode shares physical extents
(clonefile/dedup provenance link).
CloneFlagWithoutSharing
APFS-CLONE-FLAG-WITHOUT-SHARING (Low) — INODE_WAS_CLONED set but no
shared extent found.
EncryptionLocked
APFS-ENCRYPTION-LOCKED (Info) — volume encrypted, no key available.
EncryptionState
APFS-ENCRYPTION-STATE (Info) — observed keybag/crypto-state fields (raw).
EncryptionKeybagAnomaly
APFS-ENCRYPTION-KEYBAG-ANOMALY — malformed/unexpected keybag entry;
carries the raw tag value + offset.
TimestampZeroed
APFS-TIMESTAMP-ZEROED (Info) — one timestamp 0 while siblings are set.
TimestampOrder
APFS-TIMESTAMP-ORDER (Info) — change_time < create_time, etc. (FP-prone).
XidReuse
APFS-XID-REUSE — two live objects claim the same (oid, xid).
OrphanInode
APFS-ORPHAN-INODE (Low) — inode with no referencing DIR_REC.
VolumeRoleMismatch
APFS-VOLUME-ROLE-MISMATCH (Info) — volume role flag inconsistent with
content.
Implementations§
Trait Implementations§
Source§impl Clone for AnomalyKind
impl Clone for AnomalyKind
Source§fn clone(&self) -> AnomalyKind
fn clone(&self) -> AnomalyKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AnomalyKind
impl Debug for AnomalyKind
Source§impl Observation for AnomalyKind
impl Observation for AnomalyKind
Source§fn severity(&self) -> Option<Severity>
fn severity(&self) -> Option<Severity>
None if the analyzer deliberately does not grade this kind.Source§fn category(&self) -> Category
fn category(&self) -> Category
Category::from_code of Observation::code.
Override when a code’s keyword classification is wrong.