pub struct ApfsVolume<R: Read + Seek> { /* private fields */ }Expand description
High-level read-only APFS volume reader
Implementations§
Source§impl<R: Read + Seek> ApfsVolume<R>
impl<R: Read + Seek> ApfsVolume<R>
Sourcepub fn open(reader: R) -> Result<Self>
pub fn open(reader: R) -> Result<Self>
Open an APFS container and mount the first volume.
- Read block 0 → parse NX superblock, validate NXSB magic + Fletcher-64
- Scan checkpoint descriptor area for latest valid NX superblock
- Read container OMAP at omap_oid physical block
- Find first non-zero OID in fs_oids array
- Resolve volume OID → physical block via container OMAP
- Parse volume superblock (APSB magic)
- Read volume OMAP at vol.omap_oid physical block
- Resolve vol.root_tree_oid → physical block via volume OMAP → catalog B-tree root
- Store all state
Sourcepub fn volume_info(&self) -> &VolumeInfo
pub fn volume_info(&self) -> &VolumeInfo
Get volume metadata
Sourcepub fn list_directory(&mut self, path: &str) -> Result<Vec<DirEntry>>
pub fn list_directory(&mut self, path: &str) -> Result<Vec<DirEntry>>
List entries in a directory by path
Sourcepub fn read_file_to<W: Write>(
&mut self,
path: &str,
writer: &mut W,
) -> Result<u64>
pub fn read_file_to<W: Write>( &mut self, path: &str, writer: &mut W, ) -> Result<u64>
Stream a file to a writer
Sourcepub fn open_file(&mut self, path: &str) -> Result<ApfsForkReader<'_, R>>
pub fn open_file(&mut self, path: &str) -> Result<ApfsForkReader<'_, R>>
Open a file for streaming Read+Seek access
Auto Trait Implementations§
impl<R> Freeze for ApfsVolume<R>where
R: Freeze,
impl<R> RefUnwindSafe for ApfsVolume<R>where
R: RefUnwindSafe,
impl<R> Send for ApfsVolume<R>where
R: Send,
impl<R> Sync for ApfsVolume<R>where
R: Sync,
impl<R> Unpin for ApfsVolume<R>where
R: Unpin,
impl<R> UnsafeUnpin for ApfsVolume<R>where
R: UnsafeUnpin,
impl<R> UnwindSafe for ApfsVolume<R>where
R: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more