pub struct DmgReader<R> { /* private fields */ }Expand description
DMG reader for parsing and extracting disk images
Implementations§
Source§impl<R: Read + Seek> DmgReader<R>
impl<R: Read + Seek> DmgReader<R>
Sourcepub fn new(reader: R) -> Result<Self>
pub fn new(reader: R) -> Result<Self>
Create a new DMG reader with default options (checksum verification enabled)
Sourcepub fn with_options(reader: R, options: DmgReaderOptions) -> Result<Self>
pub fn with_options(reader: R, options: DmgReaderOptions) -> Result<Self>
Create a new DMG reader with custom options
Sourcepub fn koly(&self) -> &KolyHeader
pub fn koly(&self) -> &KolyHeader
Get the koly header
Sourcepub fn partitions(&self) -> &[PartitionEntry]
pub fn partitions(&self) -> &[PartitionEntry]
Get all partitions
Sourcepub fn partition(&self, name: &str) -> Option<&PartitionEntry>
pub fn partition(&self, name: &str) -> Option<&PartitionEntry>
Get partition by name
Sourcepub fn list_partitions(&self) -> Vec<&str>
pub fn list_partitions(&self) -> Vec<&str>
List all partition names
Sourcepub fn decompress_partition(&mut self, partition_id: i32) -> Result<Vec<u8>>
pub fn decompress_partition(&mut self, partition_id: i32) -> Result<Vec<u8>>
Decompress a specific partition to raw disk data
Sourcepub fn decompress_partition_to<W: Write>(
&mut self,
partition_id: i32,
writer: &mut W,
) -> Result<u64>
pub fn decompress_partition_to<W: Write>( &mut self, partition_id: i32, writer: &mut W, ) -> Result<u64>
Decompress a partition and stream to a writer block-by-block. Only uses ~block_size memory per block instead of buffering the full partition. Integrity is ensured by koly checksums verified on open. Returns the total number of bytes written.
Sourcepub fn decompress_main_partition(&mut self) -> Result<Vec<u8>>
pub fn decompress_main_partition(&mut self) -> Result<Vec<u8>>
Decompress the main HFS+ partition (largest one)
Sourcepub fn decompress_main_partition_to<W: Write>(
&mut self,
writer: &mut W,
) -> Result<u64>
pub fn decompress_main_partition_to<W: Write>( &mut self, writer: &mut W, ) -> Result<u64>
Stream the main HFS+/APFS partition to a writer.
Sourcepub fn main_partition_id(&self) -> Result<i32>
pub fn main_partition_id(&self) -> Result<i32>
Find the partition ID of the main HFS+/APFS partition.
Sourcepub fn hfs_partition_id(&self) -> Result<i32>
pub fn hfs_partition_id(&self) -> Result<i32>
Find the partition ID of the main HFS+/HFSX partition (excludes APFS).
Returns Err(FileNotFound) if no HFS-compatible partition exists.
Sourcepub fn decompress_all(&mut self) -> Result<Vec<u8>>
pub fn decompress_all(&mut self) -> Result<Vec<u8>>
Decompress all partitions into a single raw disk image
Sourcepub fn decompress_partition_auto(
&mut self,
partition_id: i32,
) -> Result<Vec<u8>>
pub fn decompress_partition_auto( &mut self, partition_id: i32, ) -> Result<Vec<u8>>
Decompress a specific partition to raw disk data.
Automatically uses parallel decompression when the parallel feature
is enabled.
Sourcepub fn decompress_main_partition_auto(&mut self) -> Result<Vec<u8>>
pub fn decompress_main_partition_auto(&mut self) -> Result<Vec<u8>>
Decompress the main HFS+ partition using auto-selected strategy.
Sourcepub fn decompress_main_partition_to_auto<W: Write>(
&mut self,
writer: &mut W,
) -> Result<u64>
pub fn decompress_main_partition_to_auto<W: Write>( &mut self, writer: &mut W, ) -> Result<u64>
Stream the main HFS+/APFS partition to a writer, using auto-selected strategy.
Sourcepub fn compression_info(&self) -> CompressionInfo
pub fn compression_info(&self) -> CompressionInfo
Get info about block compression types used