Struct chd::huffman::HuffmanDecoder
source · pub struct HuffmanDecoder<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> { /* private fields */ }
Available on
huffman_api
only.Expand description
Allocation free CHD huffman decoder.
MAX_BITS
must be less than or equal to 24.
LOOKUP_ARRAY_LEN
must be equal to lookup_len::<MAX_BITS>()
,
which is 2 ** MAX_BITS
.
The Huffman lookup array is stack-allocated. If MAX_BITS
is too large,
the stack may not be large enough to hold the HuffmanDecoder
. To free up
stack space, the HuffmanDecoder
should be boxed.
Implementations§
source§impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
sourcepub fn from_tree_rle(reader: &mut BitReader<'_>) -> Result<Self, HuffmanError>
pub fn from_tree_rle(reader: &mut BitReader<'_>) -> Result<Self, HuffmanError>
Import RLE encoded Huffman tree from the bit stream.
sourcepub fn from_huffman_tree(
reader: &mut BitReader<'_>
) -> Result<Self, HuffmanError>
pub fn from_huffman_tree( reader: &mut BitReader<'_> ) -> Result<Self, HuffmanError>
Import a pre-encoded Huffman tree from the bitstream.
sourcepub fn decode_one(
&self,
reader: &mut BitReader<'a>
) -> Result<u32, HuffmanError>
pub fn decode_one( &self, reader: &mut BitReader<'a> ) -> Result<u32, HuffmanError>
Decode a single code from the Huffman bitstream
Auto Trait Implementations§
impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> RefUnwindSafe for HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> Send for HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> Sync for HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> Unpin for HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
impl<'a, const NUM_CODES: usize, const MAX_BITS: u8, const LOOKUP_ARRAY_LEN: usize> UnwindSafe for HuffmanDecoder<'a, NUM_CODES, MAX_BITS, LOOKUP_ARRAY_LEN>
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