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,

Object Safety§

This trait is not object safe.

Implementors§

source§

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

§

type ReadError = <B as ReadWords<Word, Queue>>::ReadError

source§

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

§

type ReadError = <B as ReadWords<Word, Stack>>::ReadError