Struct flate2::Decompress [−][src]
Raw in-memory decompression stream for blocks of data.
This type is the building block for the I/O streams in the rest of this
crate. It requires more management than the Read
/Write
API but is
maximally flexible in terms of accepting input from any source and being
able to produce output to any memory location.
It is recommended to use the I/O stream adaptors over this type as they’re easier to use.
Implementations
impl Decompress
[src]
pub fn new(zlib_header: bool) -> Decompress
[src]
Creates a new object ready for decompressing data that it’s given.
The zlib_header
argument indicates whether the input data is expected
to have a zlib header or not.
pub fn total_in(&self) -> u64
[src]
Returns the total number of input bytes which have been processed by this decompression object.
pub fn total_out(&self) -> u64
[src]
Returns the total number of output bytes which have been produced by this decompression object.
pub fn decompress(
&mut self,
input: &[u8],
output: &mut [u8],
flush: FlushDecompress
) -> Result<Status, DecompressError>
[src]
&mut self,
input: &[u8],
output: &mut [u8],
flush: FlushDecompress
) -> Result<Status, DecompressError>
Decompresses the input data into the output, consuming only as much input as needed and writing as much output as possible.
The flush option can be any of the available FlushDecompress
parameters.
If the first call passes FlushDecompress::Finish
it is assumed that
the input and output buffers are both sized large enough to decompress
the entire stream in a single call.
A flush value of FlushDecompress::Finish
indicates that there are no
more source bytes available beside what’s already in the input buffer,
and the output buffer is large enough to hold the rest of the
decompressed data.
To learn how much data was consumed or how much output was produced, use
the total_in
and total_out
functions before/after this is called.
Errors
If the input data to this instance of Decompress
is not a valid
zlib/deflate stream then this function may return an instance of
DecompressError
to indicate that the stream of input bytes is corrupted.
pub fn decompress_vec(
&mut self,
input: &[u8],
output: &mut Vec<u8>,
flush: FlushDecompress
) -> Result<Status, DecompressError>
[src]
&mut self,
input: &[u8],
output: &mut Vec<u8>,
flush: FlushDecompress
) -> Result<Status, DecompressError>
Decompresses the input data into the extra space in the output vector
specified by output
.
This function has the same semantics as decompress
, except that the
length of vec
is managed by this function. This will not reallocate
the vector provided or attempt to grow it, so space for the output must
be reserved in the output vector by the caller before calling this
function.
Errors
If the input data to this instance of Decompress
is not a valid
zlib/deflate stream then this function may return an instance of
DecompressError
to indicate that the stream of input bytes is corrupted.
pub fn reset(&mut self, zlib_header: bool)
[src]
Performs the equivalent of replacing this decompression state with a freshly allocated copy.
This function may not allocate memory, though, and attempts to reuse any previously existing resources.
The argument provided here indicates whether the reset state will attempt to decode a zlib header first or not.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Decompress
impl Send for Decompress
impl Sync for Decompress
impl Unpin for Decompress
impl UnwindSafe for Decompress
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,