Skip to main content

SquashFsReader

Trait SquashFsReader 

Source
pub trait SquashFsReader: BufReadSeek {
    // Provided methods
    fn inodes(
        &mut self,
        superblock: &SuperBlock,
        kind: &Kind,
    ) -> Result<IntMap<u32, Inode>, BackhandError> { ... }
    fn root_inode(
        &mut self,
        superblock: &SuperBlock,
        kind: &Kind,
    ) -> Result<Inode, BackhandError> { ... }
    fn dir_blocks(
        &mut self,
        superblock: &SuperBlock,
        end_ptr: u64,
        kind: &Kind,
    ) -> Result<(IntMap<u64, u64>, Vec<u8>), BackhandError> { ... }
    fn fragments(
        &mut self,
        superblock: &SuperBlock,
        kind: &Kind,
    ) -> Result<Option<(u64, Vec<Fragment>)>, BackhandError> { ... }
    fn export(
        &mut self,
        _superblock: &SuperBlock,
        _kind: &Kind,
    ) -> Result<Option<(u64, Vec<Export>)>, BackhandError> { ... }
    fn uid(
        &mut self,
        superblock: &SuperBlock,
        kind: &Kind,
    ) -> Result<Vec<u16>, BackhandError> { ... }
    fn guid(
        &mut self,
        superblock: &SuperBlock,
        kind: &Kind,
    ) -> Result<Vec<u16>, BackhandError> { ... }
    fn fragment_lookup_table(
        &mut self,
        superblock: &SuperBlock,
        seek: u64,
        size: u64,
        kind: &Kind,
    ) -> Result<(u64, Vec<Fragment>), BackhandError> { ... }
    fn fragment_metadata_with_count(
        &mut self,
        superblock: &SuperBlock,
        seek: u64,
        count: u64,
        kind: &Kind,
    ) -> Result<Vec<Fragment>, BackhandError> { ... }
}
Available on crate feature v3 only.
Expand description

Squashfs data extraction methods implemented over Read and Seek

Provided Methods§

Source

fn inodes( &mut self, superblock: &SuperBlock, kind: &Kind, ) -> Result<IntMap<u32, Inode>, BackhandError>

Parse Inode Table into Vec<(position_read, Inode)>

Source

fn root_inode( &mut self, superblock: &SuperBlock, kind: &Kind, ) -> Result<Inode, BackhandError>

Extract the root Inode as a BasicDirectory

Source

fn dir_blocks( &mut self, superblock: &SuperBlock, end_ptr: u64, kind: &Kind, ) -> Result<(IntMap<u64, u64>, Vec<u8>), BackhandError>

Parse required number of Metadatas uncompressed blocks required for Dirs

Source

fn fragments( &mut self, superblock: &SuperBlock, kind: &Kind, ) -> Result<Option<(u64, Vec<Fragment>)>, BackhandError>

Parse Fragment Table

Source

fn export( &mut self, _superblock: &SuperBlock, _kind: &Kind, ) -> Result<Option<(u64, Vec<Export>)>, BackhandError>

Parse Export Table

Source

fn uid( &mut self, superblock: &SuperBlock, kind: &Kind, ) -> Result<Vec<u16>, BackhandError>

Parse UID Table

Source

fn guid( &mut self, superblock: &SuperBlock, kind: &Kind, ) -> Result<Vec<u16>, BackhandError>

Parse GUID Table

Source

fn fragment_lookup_table( &mut self, superblock: &SuperBlock, seek: u64, size: u64, kind: &Kind, ) -> Result<(u64, Vec<Fragment>), BackhandError>

Parse Fragment Lookup Table (specialized for Fragment context)

Source

fn fragment_metadata_with_count( &mut self, superblock: &SuperBlock, seek: u64, count: u64, kind: &Kind, ) -> Result<Vec<Fragment>, BackhandError>

Parse count of Fragment Metadata blocks

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§