pub struct Encoder<'a, R> { /* private fields */ }
Expand description
An encoder that compress input data from another Read
.
Implementations§
source§impl<R: BufRead> Encoder<'static, R>
impl<R: BufRead> Encoder<'static, R>
sourcepub fn with_buffer(reader: R, level: i32) -> Result<Self>
pub fn with_buffer(reader: R, level: i32) -> Result<Self>
Creates a new encoder around a BufRead
.
sourcepub fn with_dictionary(reader: R, level: i32, dictionary: &[u8]) -> Result<Self>
pub fn with_dictionary(reader: R, level: i32, dictionary: &[u8]) -> Result<Self>
Creates a new encoder, using an existing dictionary.
The dictionary must be the same as the one used during compression.
source§impl<'a, R: BufRead> Encoder<'a, R>
impl<'a, R: BufRead> Encoder<'a, R>
sourcepub fn with_prepared_dictionary<'b>(
reader: R,
dictionary: &EncoderDictionary<'b>,
) -> Result<Self>where
'b: 'a,
pub fn with_prepared_dictionary<'b>(
reader: R,
dictionary: &EncoderDictionary<'b>,
) -> Result<Self>where
'b: 'a,
Creates a new encoder, using an existing EncoderDictionary
.
The dictionary must be the same as the one used during compression.
sourcepub fn recommended_output_size() -> usize
pub fn recommended_output_size() -> usize
Recommendation for the size of the output buffer.
sourcepub fn get_mut(&mut self) -> &mut R
pub fn get_mut(&mut self) -> &mut R
Acquire a mutable reference to the underlying reader.
Note that mutation of the reader may result in surprising results if this encoder is continued to be used.
sourcepub fn flush(&mut self, out: &mut [u8]) -> Result<usize>
pub fn flush(&mut self, out: &mut [u8]) -> Result<usize>
Flush any internal buffer.
This ensures all input consumed so far is compressed.
Since it prevents bundling currently buffered data with future input, it may affect compression ratio.
- Returns the number of bytes written to
out
. - Returns
Ok(0)
when everything has been flushed.
sourcepub fn finish(self) -> R
pub fn finish(self) -> R
Return the inner Read
.
Calling finish()
is not required after reading a stream -
just use it if you need to get the Read
back.
sourcepub fn set_parameter(&mut self, parameter: CParameter) -> Result<()>
pub fn set_parameter(&mut self, parameter: CParameter) -> Result<()>
Sets the given zstd compression parameter.
sourcepub fn set_pledged_src_size(&mut self, size: Option<u64>) -> Result<()>
pub fn set_pledged_src_size(&mut self, size: Option<u64>) -> Result<()>
Sets the expected size of the input.
This affects the compression effectiveness.
It is an error to give an incorrect size (an error will be returned when closing the stream if the size does not match what was pledged).
Giving a None
size means the size is unknown (this is the default).
sourcepub fn include_checksum(&mut self, include_checksum: bool) -> Result<()>
pub fn include_checksum(&mut self, include_checksum: bool) -> Result<()>
Controls whether zstd should include a content checksum at the end of each frame.
sourcepub fn include_dictid(&mut self, include_dictid: bool) -> Result<()>
pub fn include_dictid(&mut self, include_dictid: bool) -> Result<()>
Enables or disables storing of the dict id.
Defaults to true. If false, the behaviour of decoding with a wrong dictionary is undefined.
sourcepub fn include_contentsize(&mut self, include_contentsize: bool) -> Result<()>
pub fn include_contentsize(&mut self, include_contentsize: bool) -> Result<()>
Enables or disabled storing of the contentsize.
Note that this only has an effect if the size is given with set_pledged_src_size
.
sourcepub fn long_distance_matching(
&mut self,
long_distance_matching: bool,
) -> Result<()>
pub fn long_distance_matching( &mut self, long_distance_matching: bool, ) -> Result<()>
Enables or disables long-distance matching
sourcepub fn set_target_cblock_size(&mut self, target_size: Option<u32>) -> Result<()>
pub fn set_target_cblock_size(&mut self, target_size: Option<u32>) -> Result<()>
Sets the target size for compressed blocks.
A lower block size may result in slightly lower speed (~2%) and compression ratio (~0.1%), but may decrease end-to-end latency in low-bandwidth environments (time to first decompressed byte).
No value, or a value of zero, results in no contraint for the block sizes.
sourcepub fn window_log(&mut self, log_distance: u32) -> Result<()>
pub fn window_log(&mut self, log_distance: u32) -> Result<()>
Sets the maximum back-reference distance.
The actual maximum distance is going to be 2^log_distance
.
Note that decompression will need to use at least the same setting.
Trait Implementations§
source§impl<R: BufRead> Read for Encoder<'_, R>
impl<R: BufRead> Read for Encoder<'_, R>
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
1.36.0 · source§fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
read
, except that it reads into a slice of buffers. Read moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)1.0.0 · source§fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
buf
. Read more1.0.0 · source§fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
buf
. Read more1.6.0 · source§fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
buf
. Read moresource§fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)source§fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
read_buf
)cursor
. Read more1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Read
. Read more