pub trait SerialCtx {
    // Required method
    fn serial_ctx<W>(
        &self,
        size_length: SizeLength,
        out: &mut W
    ) -> Result<(), <W as Write>::Err>
       where W: Write;
}
Expand description

The SerialCtx trait provides a means of writing structures into byte-sinks (Write) using contextual information. The contextual information is:

  • size_length: The number of bytes used to record the length of the data.

Required Methods§

source

fn serial_ctx<W>( &self, size_length: SizeLength, out: &mut W ) -> Result<(), <W as Write>::Err>
where W: Write,

Attempt to write the structure into the provided writer, failing if if the length cannot be represented in the provided size_length or only part of the structure could be written.

NB: We use Result instead of Option for better composability with other constructs.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl SerialCtx for &str

source§

fn serial_ctx<W>( &self, size_len: SizeLength, out: &mut W ) -> Result<(), <W as Write>::Err>
where W: Write,

source§

impl<K> SerialCtx for HashSet<K, BuildHasherDefault<FnvHasher>>
where K: Serial,

Serialization for HashSet given a size_len. Values are not serialized in any particular order.

source§

fn serial_ctx<W>( &self, size_len: SizeLength, out: &mut W ) -> Result<(), <W as Write>::Err>
where W: Write,

source§

impl<K, V> SerialCtx for HashMap<K, V, BuildHasherDefault<FnvHasher>>
where K: Serial, V: Serial,

Serialization for HashMap given a size_len. Keys are not serialized in any particular order.

source§

fn serial_ctx<W>( &self, size_len: SizeLength, out: &mut W ) -> Result<(), <W as Write>::Err>
where W: Write,

source§

impl<T> SerialCtx for &[T]
where T: Serial,

source§

fn serial_ctx<W>( &self, size_len: SizeLength, out: &mut W ) -> Result<(), <W as Write>::Err>
where W: Write,

Implementors§

source§

impl SerialCtx for String

source§

impl<K> SerialCtx for BTreeSet<K>
where K: Serial + Ord,

source§

impl<K, V> SerialCtx for BTreeMap<K, V>
where K: Serial + Ord, V: Serial,

source§

impl<T> SerialCtx for Vec<T>
where T: Serial,