Struct zstd::stream::Encoder
[−]
[src]
pub struct Encoder<W: Write> { /* fields omitted */ }
An encoder that compress and forward data to another writer.
This allows to compress a stream of data (good for files or heavy network stream).
Don't forget to call finish()
before dropping it!
Note: The zstd library has its own internal input buffer (~128kb).
Methods
impl<W: Write> Encoder<W>
[src]
fn new(writer: W, level: i32) -> Result<Self>
Creates a new encoder.
level
: compression level (1-21)
fn with_dictionary(writer: W, level: i32, dictionary: &[u8]) -> Result<Self>
Creates a new encoder, using an existing dictionary.
(Provides better compression ratio for small files, but requires the dictionary to be present during decompression.)
fn auto_finish(self) -> AutoFinishEncoder<W>
Returns a wrapper around self
that will finish the stream on drop.
Panic
Panics on drop if an error happens when finishing the stream.
fn on_finish<F: 'static + FnMut(Result<W>)>(self, f: F) -> AutoFinishEncoder<W>
Returns an encoder that will finish the stream on drop.
Calls the given callback with the result from finish()
.
fn get_ref(&self) -> &W
Acquires a reference to the underlying writer.
fn get_mut(&mut self) -> &mut W
Acquires a mutable reference to the underlying writer.
Note that mutation of the writer may result in surprising results if this encoder is continued to be used.
fn finish(self) -> Result<W>
Finishes the stream. You need to call this after writing your stuff.
This returns the inner writer in case you need it.
To get back self
in case an error happened, use try_finish
.
Note: If you don't want (or can't) call finish()
manually after writing your data,
consider using auto_finish()
to get an AutoFinishEncoder
.
fn try_finish(self) -> Result<W, (Self, Error)>
Attempts to finish the stream. You need to call this after writing your stuff.
This returns the inner writer if the finish was successful, or the object plus an error if it wasn't.
write
on this object will panic after try_finish
has been called,
even if it fails.
fn recommended_input_size() -> usize
Return a recommendation for the size of data to write at once.
Trait Implementations
impl<W: Write> Write for Encoder<W>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this object, returning how many bytes were written. Read more
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0
Attempts to write an entire buffer into this write. Read more
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0
Writes a formatted string into this writer, returning any error encountered. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0
Creates a "by reference" adaptor for this instance of Write
. Read more