pub struct BlockDecoder<'a, R: Read + Seek> { /* private fields */ }
Expand description
Decoder for a specific block within a 7z archive.
Provides access to entries within a single compression block and allows decoding files from that block.
Implementations§
Source§impl<'a, R: Read + Seek> BlockDecoder<'a, R>
impl<'a, R: Read + Seek> BlockDecoder<'a, R>
Sourcepub fn new(
thread_count: u32,
block_index: usize,
archive: &'a Archive,
password: &'a Password,
source: &'a mut R,
) -> Self
pub fn new( thread_count: u32, block_index: usize, archive: &'a Archive, password: &'a Password, source: &'a mut R, ) -> Self
Creates a new BlockDecoder
for decoding a specific block in the archive.
§Arguments
thread_count
- Number of threads to use for multi-threaded decompression (if supported by the codec)block_index
- Index of the block to decode within the archivearchive
- Reference to the archive containing the blockpassword
- Password for encrypted blockssource
- Mutable reference to the reader providing archive data
Sourcepub fn set_thread_count(&mut self, thread_count: u32)
pub fn set_thread_count(&mut self, thread_count: u32)
Sets the thread count to use when multi-threading is supported by the de-compression (currently only LZMA2 if encoded with MT support).
Sourcepub fn entries(&self) -> &[ArchiveEntry]
pub fn entries(&self) -> &[ArchiveEntry]
Returns a slice of archive entries contained in this block.
The entries are returned in the order they appear in the block.
Sourcepub fn entry_count(&self) -> usize
pub fn entry_count(&self) -> usize
Returns the number of entries contained in this block.
Sourcepub fn for_each_entries<F: FnMut(&ArchiveEntry, &mut dyn Read) -> Result<bool, Error>>(
self,
each: &mut F,
) -> Result<bool, Error>
pub fn for_each_entries<F: FnMut(&ArchiveEntry, &mut dyn Read) -> Result<bool, Error>>( self, each: &mut F, ) -> Result<bool, Error>
Takes a closure to decode each files in this block.
When decoding files in a block, the data to be decompressed depends on the data in front of it, you cannot simply skip the previous data and only decompress the data in the back.
Non-solid archives use one block per file and allow more effective decoding of single files.