pub struct ZstdStreamDecoder<R: Read> { /* private fields */ }Expand description
Streaming Zstandard decoder that implements Read.
All compressed data is read eagerly from the inner reader on the first
read call, decompressed into an internal buffer, and then served from
that buffer for subsequent reads.
Supports optional progress reporting via ProgressHandle and
cooperative cancellation via CancellationToken using the
ZstdStreamDecoder::with_progress / ZstdStreamDecoder::with_cancel builders.
Implementations§
Source§impl<R: Read> ZstdStreamDecoder<R>
impl<R: Read> ZstdStreamDecoder<R>
Sourcepub fn with_dictionary(reader: R, dict: Vec<u8>) -> Self
pub fn with_dictionary(reader: R, dict: Vec<u8>) -> Self
Create a new streaming decoder with a dictionary.
Dictionary-based decompression requires the same dictionary that was used during compression.
Sourcepub fn with_progress(self, handle: ProgressHandle) -> Self
pub fn with_progress(self, handle: ProgressHandle) -> Self
Attach a progress sink.
The sink’s on_progress(decompressed_bytes, None) is called once
after the entire stream is decompressed into the internal buffer.
on_finish() is called at the same point.
Sourcepub fn with_cancel(self, token: CancellationToken) -> Self
pub fn with_cancel(self, token: CancellationToken) -> Self
Attach a cancellation token.
The token is checked before the compressed stream is read and
decompressed. If cancelled, an I/O error wrapping
oxiarc_core::error::OxiArcError::Cancelled is returned.
Sourcepub fn decompressed_size(&self) -> usize
pub fn decompressed_size(&self) -> usize
Returns the total number of decompressed bytes available (including
bytes already consumed via read).
Sourcepub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
Returns true if all decompressed data has been read.
Trait Implementations§
Source§impl<R: Read> Read for ZstdStreamDecoder<R>
impl<R: Read> Read for ZstdStreamDecoder<R>
Source§fn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Read decompressed data into buf.
On the first call this eagerly decompresses the entire compressed stream from the inner reader. Subsequent calls serve from the buffer.
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