pub struct StreamingDecompressor<C, B> { /* private fields */ }Expand description
Stateful streaming decompressor that receives compressed block buffers
and decompresses complete chunks into dest_buf.
Implementations§
Source§impl<C: Borrow<CompressionInfo>, B: DataBuffer> StreamingDecompressor<C, B>
impl<C: Borrow<CompressionInfo>, B: DataBuffer> StreamingDecompressor<C, B>
Sourcepub fn new(
info: C,
range: Range<u64>,
uncompressed_size: u64,
dest_buf: B,
) -> Result<(Self, Range<u64>), ChunkedArchiveError>
pub fn new( info: C, range: Range<u64>, uncompressed_size: u64, dest_buf: B, ) -> Result<(Self, Range<u64>), ChunkedArchiveError>
Creates a new streaming decompressor for range into dest_buf.
Accepts any container info implementing Borrow<CompressionInfo> (e.g.
&CompressionInfo or Arc<CompressionInfo>).
Returns the decompressor and the block-aligned compressed byte range (Range<u64>) to
read from storage.
range.start must be chunk aligned (a multiple of chunk_size).
Sourcepub fn push<'b>(
&mut self,
buffer_slice: impl Into<PtrByteSlice<'b>>,
) -> Result<(), ChunkedArchiveError>
pub fn push<'b>( &mut self, buffer_slice: impl Into<PtrByteSlice<'b>>, ) -> Result<(), ChunkedArchiveError>
Pushes a newly read compressed block buffer slice and decompresses any complete chunks.
Fuses on error: if an error occurs or has previously occurred, returns Err.
Auto Trait Implementations§
impl<C, B> Freeze for StreamingDecompressor<C, B>
impl<C, B> RefUnwindSafe for StreamingDecompressor<C, B>where
C: RefUnwindSafe,
B: RefUnwindSafe,
impl<C, B> Send for StreamingDecompressor<C, B>
impl<C, B> Sync for StreamingDecompressor<C, B>
impl<C, B> Unpin for StreamingDecompressor<C, B>
impl<C, B> UnsafeUnpin for StreamingDecompressor<C, B>where
C: UnsafeUnpin,
B: UnsafeUnpin,
impl<C, B> UnwindSafe for StreamingDecompressor<C, B>where
C: UnwindSafe,
B: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more