[][src]Struct compu::decompressor::write::Decompressor

pub struct Decompressor<D, W> { /* fields omitted */ }

Decompressor

It writes decompressed data to supplied writer that implements Write.

Note:

There is no buffering involved, as soon as data is ready, it is written. Which means it is not suitable for async IO where WouldBlock error can happen as it is considered a error case due to lack of any buffer

Usage

use compu::decoder::{Decoder, DecoderResult, BrotliDecoder};

let data = vec![5; 5];
let mut decoder = compu::decompressor::write::Decompressor::new(BrotliDecoder::default(), Vec::new());

let result = decoder.push(&data).expect("Successful decompression");

assert_eq!(result, DecoderResult::Finished);
assert!(decoder.decoder().is_finished());

Methods

impl<D: Decoder, W: Write> Decompressor<D, W>[src]

pub fn new(decoder: D, writer: W) -> Self[src]

Creates new instance

pub fn decoder(&self) -> &D[src]

Returns reference to underlying decoder

pub fn writer(&self) -> &W[src]

Returns reference to underlying writer

pub fn writer_mut(&mut self) -> &mut W[src]

Returns mutable reference to underlying writer

pub fn push(&mut self, data: &[u8]) -> Result<DecoderResult>[src]

Pushes data into, and returns Decoder's operation status

  • DecoderResult::Finished indicates decompression has finished successfully.
  • DecoderResult::NeedInput indicates that further data is necessary.
  • DecoderResult::NeedOutput SHOULD not happen

Any other variants indicates error.

Returns io::Error if underlying writer fails, note that if io::Error happens then compressed data will be lost

pub fn take(self) -> W[src]

Consumes self and returns underlying writer.

Trait Implementations

impl<D: Decoder, W: Write> Write for Decompressor<D, W>[src]

fn write_vectored(&mut self, bufs: &[IoSlice]) -> Result<usize, Error>1.36.0[src]

Like write, except that it writes from a slice of buffers. Read more

fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>1.0.0[src]

Writes a formatted string into this writer, returning any error encountered. Read more

fn by_ref(&mut self) -> &mut Self1.0.0[src]

Creates a "by reference" adaptor for this instance of Write. Read more

Auto Trait Implementations

impl<D, W> Send for Decompressor<D, W> where
    D: Send,
    W: Send

impl<D, W> Sync for Decompressor<D, W> where
    D: Sync,
    W: Sync

Blanket Implementations

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

impl<T> From<T> for 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.

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

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

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