Serde

Trait Serde 

Source
pub trait Serde:
    Sized
    + Clone
    + PartialEq {
    // Required methods
    fn ser(&self, writer: &mut dyn BitWrite);
    fn de(reader: &mut BitReader<'_>) -> Result<Self, SerdeErr>;
    fn bit_length(&self) -> u32;
}
Expand description

A trait for objects that can be serialized to a bitstream.

Required Methods§

Source

fn ser(&self, writer: &mut dyn BitWrite)

Serialize Self to a BitWriter

Source

fn de(reader: &mut BitReader<'_>) -> Result<Self, SerdeErr>

Parse Self from a BitReader

Source

fn bit_length(&self) -> u32

Return length of value in bits

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Serde for bool

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<bool, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for char

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<char, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for f32

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<f32, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for f64

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<f64, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for i8

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<i8, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for i16

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<i16, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for i32

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<i32, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for i64

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<i64, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for isize

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<isize, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for u8

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<u8, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for u16

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<u16, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for u32

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<u32, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for u64

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<u64, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for ()

Source§

fn ser(&self, _: &mut dyn BitWrite)

Source§

fn de(_: &mut BitReader<'_>) -> Result<(), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for usize

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<usize, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for Box<[u8]>

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<Box<[u8]>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl Serde for String

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<String, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A> Serde for (A,)
where A: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A,), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B> Serde for (A, B)
where A: Serde, B: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C> Serde for (A, B, C)
where A: Serde, B: Serde, C: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B, C), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D> Serde for (A, B, C, D)
where A: Serde, B: Serde, C: Serde, D: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B, C, D), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E> Serde for (A, B, C, D, E)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B, C, D, E), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F> Serde for (A, B, C, D, E, F)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B, C, D, E, F), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F, G> Serde for (A, B, C, D, E, F, G)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde, G: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B, C, D, E, F, G), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F, G, H> Serde for (A, B, C, D, E, F, G, H)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde, G: Serde, H: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<(A, B, C, D, E, F, G, H), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F, G, H, I> Serde for (A, B, C, D, E, F, G, H, I)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde, G: Serde, H: Serde, I: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de( reader: &mut BitReader<'_>, ) -> Result<(A, B, C, D, E, F, G, H, I), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F, G, H, I, J> Serde for (A, B, C, D, E, F, G, H, I, J)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde, G: Serde, H: Serde, I: Serde, J: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de( reader: &mut BitReader<'_>, ) -> Result<(A, B, C, D, E, F, G, H, I, J), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F, G, H, I, J, K> Serde for (A, B, C, D, E, F, G, H, I, J, K)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde, G: Serde, H: Serde, I: Serde, J: Serde, K: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de( reader: &mut BitReader<'_>, ) -> Result<(A, B, C, D, E, F, G, H, I, J, K), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> Serde for (A, B, C, D, E, F, G, H, I, J, K, L)
where A: Serde, B: Serde, C: Serde, D: Serde, E: Serde, F: Serde, G: Serde, H: Serde, I: Serde, J: Serde, K: Serde, L: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de( reader: &mut BitReader<'_>, ) -> Result<(A, B, C, D, E, F, G, H, I, J, K, L), SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<K> Serde for HashSet<K>
where K: Serde + Eq + Hash,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<HashSet<K>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<K, V> Serde for HashMap<K, V>
where K: Serde + Eq + Hash, V: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<HashMap<K, V>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T> Serde for &[T]
where T: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(_: &mut BitReader<'_>) -> Result<&[T], SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T> Serde for Option<T>
where T: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<Option<T>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T> Serde for Box<T>
where T: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<Box<T>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T> Serde for VecDeque<T>
where T: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<VecDeque<T>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T> Serde for Vec<T>
where T: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<Vec<T>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T> Serde for PhantomData<T>

Source§

fn ser(&self, _: &mut dyn BitWrite)

Source§

fn de(_: &mut BitReader<'_>) -> Result<PhantomData<T>, SerdeErr>

Source§

fn bit_length(&self) -> u32

Source§

impl<T, const N: usize> Serde for [T; N]
where T: Serde,

Source§

fn ser(&self, writer: &mut dyn BitWrite)

Source§

fn de(reader: &mut BitReader<'_>) -> Result<[T; N], SerdeErr>

Source§

fn bit_length(&self) -> u32

Implementors§