use dsi_bitstream::prelude::*;
pub trait BitSerializer<E: Endianness, BW: BitWrite<E>> {
type SerType;
fn serialize(&self, value: &Self::SerType, bitstream: &mut BW) -> Result<usize, BW::Error>;
}
pub trait BitDeserializer<E: Endianness, BR: BitRead<E>> {
type DeserType;
fn deserialize(&self, bitstream: &mut BR) -> Result<Self::DeserType, BR::Error>;
}
impl<E: Endianness, BW: BitWrite<E>> BitSerializer<E, BW> for () {
type SerType = ();
#[inline(always)]
fn serialize(&self, _value: &Self::SerType, _bitstream: &mut BW) -> Result<usize, BW::Error> {
Ok(0)
}
}
impl<E: Endianness, BR: BitRead<E>> BitDeserializer<E, BR> for () {
type DeserType = ();
#[inline(always)]
fn deserialize(&self, _bitstream: &mut BR) -> Result<Self::DeserType, BR::Error> {
Ok(())
}
}