bzip2

Struct Compress

Source
pub struct Compress { /* private fields */ }
Expand description

Representation of an in-memory compression stream.

An instance of Compress can be used to compress a stream of bz2 data.

Implementations§

Source§

impl Compress

Source

pub fn new(lvl: Compression, work_factor: u32) -> Compress

Creates a new stream prepared for compression.

The work_factor parameter controls how the compression phase behaves when presented with worst case, highly repetitive, input data. If compression runs into difficulties caused by repetitive data, the library switches from the standard sorting algorithm to a fallback algorithm. The fallback is slower than the standard algorithm by perhaps a factor of three, but always behaves reasonably, no matter how bad the input.

Lower values of work_factor reduce the amount of effort the standard algorithm will expend before resorting to the fallback. You should set this parameter carefully; too low, and many inputs will be handled by the fallback algorithm and so compress rather slowly, too high, and your average-to-worst case compression times can become very large. The default value of 30 gives reasonable behaviour over a wide range of circumstances.

Allowable values range from 0 to 250 inclusive. 0 is a special case, equivalent to using the default value of 30.

Source

pub fn compress( &mut self, input: &[u8], output: &mut [u8], action: Action, ) -> Result<Status, Error>

Compress a block of input into a block of output.

If anything other than BZ_OK is seen, Err is returned. The action given must be one of Run, Flush or Finish.

Source

pub fn compress_vec( &mut self, input: &[u8], output: &mut Vec<u8>, action: Action, ) -> Result<Status, Error>

Compress a block of input into an output vector.

This function will not grow output, but it will fill the space after its current length up to its capacity. The length of the vector will be adjusted appropriately.

Source

pub fn total_in(&self) -> u64

Total number of bytes processed as input

Source

pub fn total_out(&self) -> u64

Total number of bytes processed as output

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, 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>,

Source§

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>,

Source§

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.