[−][src]Struct compu::compressor::write::Compressor
Compressor
It writes compressed data to supplied writer that implements Write
You can finish compression, by calling push
with op
equal to EncoderOp::Finish
Usage
use compu::encoder::{Encoder, EncoderOp, BrotliEncoder}; let data = vec![5; 5]; let mut encoder = compu::compressor::write::Compressor::new(BrotliEncoder::default(), Vec::new()); let result = encoder.push(&data, EncoderOp::Finish).expect("Successful compression"); assert!(result > 0); assert!(encoder.encoder().is_finished());
Methods
impl<E: Encoder, W: Write> Compressor<E, W>
[src]
pub fn new(encoder: E, writer: W) -> Self
[src]
Creates new instance
pub fn encoder(&self) -> &E
[src]
Returns reference to underlying encoder
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], op: EncoderOp) -> Result<usize>
[src]
Pushes chunk to compressor
Specify op
equal to EncoderOp::Finish
when last chunk is being pushed.
Allowed to be empty chunk.
Returns number of bytes written.
Returns io::Error
if underlying writer fails, note that if io::Error happens
then compressed data will be lost
Returns io::ErrorKind::InvalidData
if compression fails.
ⓘImportant traits for AutoFinish<E, W>pub fn auto_finish(self) -> AutoFinish<E, W>
[src]
Enables automatic finish for compressor.
pub fn take(self) -> W
[src]
Consumes self and returns underlying writer.
Trait Implementations
impl<E: Encoder, W: Write> Write for Compressor<E, W>
[src]
fn write(&mut self, buf: &[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<E, W> Send for Compressor<E, W> where
E: Send,
W: Send,
E: Send,
W: Send,
impl<E, W> Sync for Compressor<E, W> where
E: Sync,
W: Sync,
E: Sync,
W: Sync,
Blanket Implementations
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.
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,