Struct rc_zip::fsm::EntryFsm

source ·
pub struct EntryFsm { /* private fields */ }
Expand description

A state machine that can parse a zip entry

Implementations§

source§

impl EntryFsm

source

pub fn new(entry: Option<Entry>, buffer: Option<Buffer>) -> Self

Create a new state machine for decompressing a zip entry

source

pub fn wants_read(&self) -> bool

If this returns true, the caller should read data from into Self::space — without forgetting to call Self::fill with the number of bytes written.

source

pub fn process_till_header(&mut self) -> Result<Option<&Entry>, Error>

Like process, but only processes the header. If this returns Ok(None), the caller should read more data and call this function again.

source

pub fn process( self, out: &mut [u8] ) -> Result<FsmResult<(Self, DecompressOutcome), Buffer>, Error>

Process the input and write the output to the given buffer

This function will return FsmResult::Continue if it needs more input to continue, or if it needs more space to write to. It will return FsmResult::Done when all the input has been decompressed and all the output has been written.

Also, after writing all the output, process will read the data descriptor (if any), and make sur the CRC32 hash and the uncompressed size match the expected values.

source

pub fn space(&mut self) -> &mut [u8]

Returns a mutable slice with all the available space to write to.

After writing to this, call Self::fill with the number of bytes written.

source

pub fn fill(&mut self, count: usize) -> usize

After having written data to Self::space, call this to indicate how many bytes were written.

Auto Trait Implementations§

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more