pub trait WriteBitStream<S: Semantics> {
type WriteError;
fn write_bit(&mut self, bit: bool) -> Result<(), Self::WriteError>;
fn encode_symbol<Symbol, C>(
&mut self,
symbol: Symbol,
codebook: C
) -> Result<(), CoderError<DefaultEncoderFrontendError, Self::WriteError>>
where
C: EncoderCodebook,
Symbol: Borrow<C::Symbol>;
fn encode_symbols<Symbol, C>(
&mut self,
symbols_and_codebooks: impl IntoIterator<Item = (Symbol, C)>
) -> Result<(), CoderError<DefaultEncoderFrontendError, Self::WriteError>>
where
C: EncoderCodebook,
Symbol: Borrow<C::Symbol>,
{ ... }
fn encode_iid_symbols<Symbol, C>(
&mut self,
symbols: impl IntoIterator<Item = Symbol>,
codebook: &C
) -> Result<(), CoderError<DefaultEncoderFrontendError, Self::WriteError>>
where
C: EncoderCodebook,
Symbol: Borrow<C::Symbol>,
{ ... }
}