Skip to main content

Encode

Trait Encode 

Source
pub trait Encode: Send + Sync {
    // Required method
    fn encode(&self, message: &dyn Any) -> Result<EncodedPayload, EncodeError>;
}
Expand description

A type-erased encoder used by the registry.

Implementors take the captured message as &dyn Any so the registry can dispatch by std::any::TypeId without naming the concrete type at the call site. Most callers build encoders with TypedEncoder rather than implementing this trait directly.

Required Methods§

Source

fn encode(&self, message: &dyn Any) -> Result<EncodedPayload, EncodeError>

Encodes the supplied message into canonical payload bytes plus sidecar indices.

§Errors

Returns EncodeError::TypeMismatch when message does not match the encoder’s expected type, and EncodeError::Serialize for any encoder-internal failure.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§

Source§

impl<T: 'static, F> Encode for TypedEncoder<T, F>