pub trait MessageCodec: Clone + 'static {
// Required methods
fn encode<T>(&self, msg: &T) -> Result<Vec<u8>, CodecError>
where T: Serialize;
fn decode<T>(&self, buf: &[u8]) -> Result<T, CodecError>
where T: DeserializeOwned;
}Expand description
Pluggable message serialization format.
Implement this trait to use custom serialization formats (bincode, protobuf, etc.).
The trait requires Clone + 'static so codec instances can be stored in queues
and transports.
§Serde Dependency
This trait uses serde’s Serialize and DeserializeOwned bounds, which means
your message types must derive or implement serde traits. If you need completely
custom serialization without serde, you can implement your own queue type.
Required Methods§
Sourcefn decode<T>(&self, buf: &[u8]) -> Result<T, CodecError>where
T: DeserializeOwned,
fn decode<T>(&self, buf: &[u8]) -> Result<T, CodecError>where
T: DeserializeOwned,
Decode bytes to a deserializable message.
§Errors
Returns CodecError::Decode if deserialization fails.
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.