naia_serde/
serde.rs

1use super::{bit_reader::BitReader, bit_writer::BitWrite, error::SerdeErr};
2
3/// A trait for objects that can be serialized to a bitstream.
4pub trait Serde: Sized + Clone + PartialEq {
5    /// Serialize Self to a BitWriter
6    fn ser(&self, writer: &mut dyn BitWrite);
7
8    /// Parse Self from a BitReader
9    fn de(reader: &mut BitReader) -> Result<Self, SerdeErr>;
10
11    /// Return length of value in bits
12    fn bit_length(&self) -> u32;
13}
14
15pub trait ConstBitLength {
16    fn const_bit_length() -> u32;
17}