SerializeBuf

Trait SerializeBuf 

Source
pub unsafe trait SerializeBuf<E: Encoding = Vanilla>: SerializeIter<E> {
    const SIZE: usize;
}
Expand description

This trait defines a more rigid/static serialization interface.

Types that implement this trait can be serialized to and from buffers with an exact length. This length being the minimum needed for any value of the implementer type.

To implement this trait, the type must already implement SerializeIter and the implementer must compute the necessary length of the serialization medium.

§Safety

The value of the associated SIZE constant is critical. An insufficient size will result in UB. Best to leave this implementation to the procedural macro.

Required Associated Constants§

Source

const SIZE: usize

The size of the implementor when serialized, according to the encoding scheme.

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 SerializeBuf for bool

Source§

const SIZE: usize = 1usize

Source§

impl SerializeBuf for f32

Source§

const SIZE: usize = 4usize

Source§

impl SerializeBuf for f64

Source§

const SIZE: usize = 8usize

Source§

impl SerializeBuf for i8

Source§

const SIZE: usize = 1usize

Source§

impl SerializeBuf for i16

Source§

const SIZE: usize = 2usize

Source§

impl SerializeBuf for i32

Source§

const SIZE: usize = 4usize

Source§

impl SerializeBuf for i64

Source§

const SIZE: usize = 8usize

Source§

impl SerializeBuf for u8

Source§

const SIZE: usize = 1usize

Source§

impl SerializeBuf for u16

Source§

const SIZE: usize = 2usize

Source§

impl SerializeBuf for u32

Source§

const SIZE: usize = 4usize

Source§

impl SerializeBuf for u64

Source§

const SIZE: usize = 8usize

Source§

impl<A: SerializeBuf> SerializeBuf for (A,)

Source§

impl<A: SerializeBuf, B: SerializeBuf> SerializeBuf for (A, B)

Source§

impl<A: SerializeBuf, B: SerializeBuf, C: SerializeBuf> SerializeBuf for (A, B, C)

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§