pub trait ReadBitStream<S: Semantics> {
type ReadError;
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>>;
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,
{ ... }
}