Struct brotli::reader::DecompressorCustomIo
source · pub struct DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
R: CustomRead<ErrType>,
BufferType: SliceWrapperMut<u8>,
AllocU8: Allocator<u8>,
AllocU32: Allocator<u32>,
AllocHC: Allocator<HuffmanCode>,{
input_buffer: BufferType,
total_out: usize,
input_offset: usize,
input_len: usize,
input: R,
error_if_invalid_data: Option<ErrType>,
state: BrotliState<AllocU8, AllocU32, AllocHC>,
done: bool,
}
Fields§
§input_buffer: BufferType
§total_out: usize
§input_offset: usize
§input_len: usize
§input: R
§error_if_invalid_data: Option<ErrType>
§state: BrotliState<AllocU8, AllocU32, AllocHC>
§done: bool
Implementations§
source§impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
R: CustomRead<ErrType>,
BufferType: SliceWrapperMut<u8>,
AllocU8: Allocator<u8>,
AllocU32: Allocator<u32>,
AllocHC: Allocator<HuffmanCode>,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
R: CustomRead<ErrType>,
BufferType: SliceWrapperMut<u8>,
AllocU8: Allocator<u8>,
AllocU32: Allocator<u32>,
AllocHC: Allocator<HuffmanCode>,
pub fn new( r: R, buffer: BufferType, alloc_u8: AllocU8, alloc_u32: AllocU32, alloc_hc: AllocHC, invalid_data_error_type: ErrType, ) -> DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>
pub fn new_with_custom_dictionary( r: R, buffer: BufferType, alloc_u8: AllocU8, alloc_u32: AllocU32, alloc_hc: AllocHC, dict: <AllocU8 as Allocator<u8>>::AllocatedMemory, invalid_data_error_type: ErrType, ) -> DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>
pub fn get_ref(&self) -> &R
pub fn get_mut(&mut self) -> &mut R
pub fn into_inner(self) -> R
pub fn copy_to_front(&mut self)
Trait Implementations§
source§impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> CustomRead<ErrType> for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
R: CustomRead<ErrType>,
BufferType: SliceWrapperMut<u8>,
AllocU8: Allocator<u8>,
AllocU32: Allocator<u32>,
AllocHC: Allocator<HuffmanCode>,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> CustomRead<ErrType> for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
R: CustomRead<ErrType>,
BufferType: SliceWrapperMut<u8>,
AllocU8: Allocator<u8>,
AllocU32: Allocator<u32>,
AllocHC: Allocator<HuffmanCode>,
source§fn read(&mut self, buf: &mut [u8]) -> Result<usize, ErrType>
fn read(&mut self, buf: &mut [u8]) -> Result<usize, ErrType>
This variant of read will return Ok(number of bytes read) until the file Is completed at which point it will return Ok(0). However if there are additional unconsumed bytes in the buffer, it will return Err(InvalidData) at that point. Otherwise it will keep returning Ok(0).
§Arguments
buf
- The buffer to read into
§Errors
Returns Ok(0) if the file has been fully decompressed. If the file has been fully decompressed but there are additional non-brotli bytes in the buffer, then return an InvalidData error. Also upstream errors from the reader are returned.
Auto Trait Implementations§
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> Freeze for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
BufferType: Freeze,
R: Freeze,
ErrType: Freeze,
AllocU8: Freeze,
AllocU32: Freeze,
AllocHC: Freeze,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Freeze,
<AllocHC as Allocator<HuffmanCode>>::AllocatedMemory: Freeze,
<AllocU32 as Allocator<u32>>::AllocatedMemory: Freeze,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> RefUnwindSafe for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
BufferType: RefUnwindSafe,
R: RefUnwindSafe,
ErrType: RefUnwindSafe,
AllocU8: RefUnwindSafe,
AllocU32: RefUnwindSafe,
AllocHC: RefUnwindSafe,
<AllocU8 as Allocator<u8>>::AllocatedMemory: RefUnwindSafe,
<AllocHC as Allocator<HuffmanCode>>::AllocatedMemory: RefUnwindSafe,
<AllocU32 as Allocator<u32>>::AllocatedMemory: RefUnwindSafe,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> Send for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
BufferType: Send,
R: Send,
ErrType: Send,
AllocU8: Send,
AllocU32: Send,
AllocHC: Send,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Send,
<AllocHC as Allocator<HuffmanCode>>::AllocatedMemory: Send,
<AllocU32 as Allocator<u32>>::AllocatedMemory: Send,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> Sync for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
BufferType: Sync,
R: Sync,
ErrType: Sync,
AllocU8: Sync,
AllocU32: Sync,
AllocHC: Sync,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Sync,
<AllocHC as Allocator<HuffmanCode>>::AllocatedMemory: Sync,
<AllocU32 as Allocator<u32>>::AllocatedMemory: Sync,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> Unpin for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
BufferType: Unpin,
R: Unpin,
ErrType: Unpin,
AllocU8: Unpin,
AllocU32: Unpin,
AllocHC: Unpin,
<AllocU8 as Allocator<u8>>::AllocatedMemory: Unpin,
<AllocHC as Allocator<HuffmanCode>>::AllocatedMemory: Unpin,
<AllocU32 as Allocator<u32>>::AllocatedMemory: Unpin,
impl<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC> UnwindSafe for DecompressorCustomIo<ErrType, R, BufferType, AllocU8, AllocU32, AllocHC>where
BufferType: UnwindSafe,
R: UnwindSafe,
ErrType: UnwindSafe,
AllocU8: UnwindSafe,
AllocU32: UnwindSafe,
AllocHC: UnwindSafe,
<AllocU8 as Allocator<u8>>::AllocatedMemory: UnwindSafe,
<AllocHC as Allocator<HuffmanCode>>::AllocatedMemory: UnwindSafe,
<AllocU32 as Allocator<u32>>::AllocatedMemory: 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