[−][src]Struct compu::decompressor::write::Decompressor
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(&mut self, data: &[u8]) -> Result<usize>
[src]
fn flush(&mut self) -> Result<()>
[src]
fn write_all(&mut self, buf: &[u8]) -> Result<()>
[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 Self
1.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,
D: Send,
W: Send,
impl<D, W> Sync for Decompressor<D, W> where
D: Sync,
W: Sync,
D: Sync,
W: Sync,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
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.
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,