Struct sevenz_rust::BlockDecoder
source · pub struct BlockDecoder<'a, R: Read + Seek> { /* private fields */ }
Implementations§
source§impl<'a, R: Read + Seek> BlockDecoder<'a, R>
impl<'a, R: Read + Seek> BlockDecoder<'a, R>
pub fn new( folder_index: usize, archive: &'a Archive, password: &'a [u8], source: &'a mut R, ) -> Self
pub fn entries(&self) -> &[SevenZArchiveEntry]
pub fn entry_count(&self) -> usize
sourcepub fn for_each_entries<F: FnMut(&SevenZArchiveEntry, &mut dyn Read) -> Result<bool, Error>>(
self,
each: &mut F,
) -> Result<bool, Error>
pub fn for_each_entries<F: FnMut(&SevenZArchiveEntry, &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.
See ChecksumVerificationFailed.
To speed up decompression, you can check this example examples/forder_dec.rs. And this example mt_decompress.rs if you want use multi-thread.
Auto Trait Implementations§
impl<'a, R> Freeze for BlockDecoder<'a, R>
impl<'a, R> RefUnwindSafe for BlockDecoder<'a, R>where
R: RefUnwindSafe,
impl<'a, R> Send for BlockDecoder<'a, R>where
R: Send,
impl<'a, R> Sync for BlockDecoder<'a, R>where
R: Sync,
impl<'a, R> Unpin for BlockDecoder<'a, R>
impl<'a, R> !UnwindSafe for BlockDecoder<'a, R>
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