Struct sevenz_rust::BlockDecoder

source ·
pub struct BlockDecoder<'a, R: Read + Seek> { /* private fields */ }

Implementations§

source§

impl<'a, R: Read + Seek> BlockDecoder<'a, R>

source

pub fn new( folder_index: usize, archive: &'a Archive, password: &'a [u8], source: &'a mut R, ) -> Self

source

pub fn entries(&self) -> &[SevenZArchiveEntry]

source

pub fn entry_count(&self) -> usize

source

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> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.