Skip to main content

SerializationContext

Trait SerializationContext 

Source
pub trait SerializationContext: Sized {
    type ContextState: Default;

    // Provided method
    fn serialize_nested<O: PacketBuilder<Self>, R>(
        &mut self,
        _outer: &O,
        constraints: PacketConstraints,
        serialize_fn: impl FnOnce(&mut Self, PacketConstraints) -> R,
    ) -> R { ... }
}
Expand description

Context in which packet serialization is performed.

Required Associated Types§

Source

type ContextState: Default

The packet-specific state required by this serialization context.

Provided Methods§

Source

fn serialize_nested<O: PacketBuilder<Self>, R>( &mut self, _outer: &O, constraints: PacketConstraints, serialize_fn: impl FnOnce(&mut Self, PacketConstraints) -> R, ) -> R

Performs nested serialization within the context of an outer PacketBuilder.

The provided serialize_fn is expected to serialize the packet body and then the packet header and/or footer, each with the provided context.

The implementor is expected to call serialize_fn and return the result without modification, but it may update its internal state before and/or after doing so if necessary.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§