Trait zstd::stream::raw::Operation [−][src]
Represents an abstract compression/decompression operation.
This trait covers both Encoder
and Decoder
.
Required methods
fn run(
&mut self,
input: &mut InBuffer<'_>,
output: &mut OutBuffer<'_>
) -> Result<usize>
[src]
&mut self,
input: &mut InBuffer<'_>,
output: &mut OutBuffer<'_>
) -> Result<usize>
Performs a single step of this operation.
Should return a hint for the next input size.
If the result is Ok(0)
, it may indicate that a frame was just
finished.
Provided methods
fn run_on_buffers(&mut self, input: &[u8], output: &mut [u8]) -> Result<Status>
[src]
Performs a single step of this operation.
This is a comvenience wrapper around Operation::run
if you don’t
want to deal with InBuffer
/OutBuffer
.
fn flush(&mut self, output: &mut OutBuffer<'_>) -> Result<usize>
[src]
Flushes any internal buffer, if any.
Returns the number of bytes still in the buffer.
To flush entirely, keep calling until it returns Ok(0)
.
fn reinit(&mut self) -> Result<()>
[src]
Prepares the operation for a new frame.
This is hopefully cheaper than creating a new operation.
fn finish(
&mut self,
output: &mut OutBuffer<'_>,
finished_frame: bool
) -> Result<usize>
[src]
&mut self,
output: &mut OutBuffer<'_>,
finished_frame: bool
) -> Result<usize>
Finishes the operation, writing any footer if necessary.
Returns the number of bytes still to write.
Keep calling this method until it returns Ok(0)
,
and then don’t ever call this method.
Implementors
impl Operation for Decoder
[src]
fn run(
&mut self,
input: &mut InBuffer<'_>,
output: &mut OutBuffer<'_>
) -> Result<usize>
[src]
&mut self,
input: &mut InBuffer<'_>,
output: &mut OutBuffer<'_>
) -> Result<usize>
fn reinit(&mut self) -> Result<()>
[src]
fn finish(
&mut self,
_output: &mut OutBuffer<'_>,
finished_frame: bool
) -> Result<usize>
[src]
&mut self,
_output: &mut OutBuffer<'_>,
finished_frame: bool
) -> Result<usize>
impl Operation for Encoder
[src]
fn run(
&mut self,
input: &mut InBuffer<'_>,
output: &mut OutBuffer<'_>
) -> Result<usize>
[src]
&mut self,
input: &mut InBuffer<'_>,
output: &mut OutBuffer<'_>
) -> Result<usize>
fn flush(&mut self, output: &mut OutBuffer<'_>) -> Result<usize>
[src]
fn finish(
&mut self,
output: &mut OutBuffer<'_>,
_finished_frame: bool
) -> Result<usize>
[src]
&mut self,
output: &mut OutBuffer<'_>,
_finished_frame: bool
) -> Result<usize>