Struct flate2::Compress[][src]

pub struct Compress { /* fields omitted */ }

Raw in-memory compression 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 Compress[src]

pub fn new(level: Compression, zlib_header: bool) -> Compress[src]

Creates a new object ready for compressing data that it’s given.

The level argument here indicates what level of compression is going to be performed, and the zlib_header argument indicates whether the output data should 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 compression object.

pub fn total_out(&self) -> u64[src]

Returns the total number of output bytes which have been produced by this compression object.

pub fn reset(&mut self)[src]

Quickly resets this compressor without having to reallocate anything.

This is equivalent to dropping this object and then creating a new one.

pub fn compress(
    &mut self,
    input: &[u8],
    output: &mut [u8],
    flush: FlushCompress
) -> Result<Status, CompressError>
[src]

Compresses 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 FlushCompress parameters.

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.

pub fn compress_vec(
    &mut self,
    input: &[u8],
    output: &mut Vec<u8>,
    flush: FlushCompress
) -> Result<Status, CompressError>
[src]

Compresses the input data into the extra space of the output, consuming only as much input as needed and writing as much output as possible.

This function has the same semantics as compress, 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.

Trait Implementations

impl Debug for Compress[src]

Auto Trait Implementations

impl RefUnwindSafe for Compress

impl Send for Compress

impl Sync for Compress

impl Unpin for Compress

impl UnwindSafe for Compress

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.