Skip to main content

SerializeBytes

Trait SerializeBytes 

Source
pub trait SerializeBytes {
    // Required method
    fn serialize(
        &self,
        write_buf: impl BufMut,
    ) -> Result<(), SerializationError>;

    // Provided method
    fn serialize_slice(
        slice: &[Self],
        write_buf: impl BufMut,
    ) -> Result<(), SerializationError>
       where Self: Sized { ... }
}
Expand description

Serialize data to a byte buffer.

Required Methods§

Source

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Provided Methods§

Source

fn serialize_slice( slice: &[Self], write_buf: impl BufMut, ) -> Result<(), SerializationError>
where Self: Sized,

Serializes every element of slice back-to-back, with no length prefix.

The default loops, calling serialize once per element. That default is always correct. Overriding this method is an optimization, never a correctness requirement. Override it only when slice’s byte layout already matches its serialized form. Then the whole call collapses to one bulk copy instead of N small writes.

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 SerializeBytes for &str

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for bool

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for u8

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for u16

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for u32

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for u64

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for u128

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for usize

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl SerializeBytes for String

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<T> SerializeBytes for PhantomData<T>

Source§

fn serialize(&self, _write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<T: SerializeBytes + ?Sized> SerializeBytes for &T

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<T: SerializeBytes> SerializeBytes for Option<T>

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<T: SerializeBytes> SerializeBytes for [T]

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<T: SerializeBytes> SerializeBytes for Vec<T>

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

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

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<U: SerializeBytes, V: SerializeBytes> SerializeBytes for (U, V)

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Source§

impl<U: ArraySize> SerializeBytes for Array<u8, U>

Source§

fn serialize(&self, write_buf: impl BufMut) -> Result<(), SerializationError>

Implementors§