pub trait CuLogCodec<P: CuMsgPayload>: 'static {
type Config: DeserializeOwned + Default;
// Required methods
fn new(config: Self::Config) -> CuResult<Self>
where Self: Sized;
fn encode_payload<E: Encoder>(
&mut self,
payload: &P,
encoder: &mut E,
) -> Result<(), EncodeError>;
fn decode_payload<D: Decoder<Context = ()>>(
&mut self,
decoder: &mut D,
) -> Result<P, DecodeError>;
}Required Associated Types§
type Config: DeserializeOwned + Default
Required Methods§
fn new(config: Self::Config) -> CuResult<Self>where
Self: Sized,
fn encode_payload<E: Encoder>( &mut self, payload: &P, encoder: &mut E, ) -> Result<(), EncodeError>
fn decode_payload<D: Decoder<Context = ()>>( &mut self, decoder: &mut D, ) -> Result<P, DecodeError>
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.