ReadBitStream

Trait ReadBitStream 

Source
pub trait ReadBitStream<S: Semantics> {
    type ReadError;

    // Required methods
    fn read_bit(&mut self) -> Result<Option<bool>, Self::ReadError>;
    fn decode_symbol<C: DecoderCodebook>(
        &mut self,
        codebook: C,
    ) -> Result<C::Symbol, CoderError<SymbolCodeError<C::InvalidCodeword>, Self::ReadError>>;

    // Provided methods
    fn decode_symbols<'s, I, C>(
        &'s mut self,
        codebooks: I,
    ) -> DecodeSymbols<'s, Self, I, S> 
       where I: IntoIterator<Item = C> + 's,
             C: DecoderCodebook { ... }
    fn decode_iid_symbols<'a, C>(
        &'a mut self,
        amt: usize,
        codebook: &'a C,
    ) -> DecodeSymbols<'a, Self, Take<Repeat<&'a C>>, S> 
       where C: DecoderCodebook { ... }
}

Required Associated Types§

Required Methods§

Source

fn read_bit(&mut self) -> Result<Option<bool>, Self::ReadError>

Source

fn decode_symbol<C: DecoderCodebook>( &mut self, codebook: C, ) -> Result<C::Symbol, CoderError<SymbolCodeError<C::InvalidCodeword>, Self::ReadError>>

Provided Methods§

Source

fn decode_symbols<'s, I, C>( &'s mut self, codebooks: I, ) -> DecodeSymbols<'s, Self, I, S>
where I: IntoIterator<Item = C> + 's, C: DecoderCodebook,

Source

fn decode_iid_symbols<'a, C>( &'a mut self, amt: usize, codebook: &'a C, ) -> DecodeSymbols<'a, Self, Take<Repeat<&'a C>>, S>
where C: DecoderCodebook,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Word: BitArray, B: ReadWords<Word, Queue>> ReadBitStream<Queue> for QueueDecoder<Word, B>

Source§

impl<Word: BitArray, B: ReadWords<Word, Stack>> ReadBitStream<Stack> for StackCoder<Word, B>