pub trait MessageMarshaler: Send + Sync {
type Error: Error + Send + Sync + 'static;
// Required methods
fn marshal(
&self,
msg: &MessageExchangeHeads,
) -> Result<Vec<u8>, Self::Error>;
fn unmarshal(
&self,
data: &[u8],
) -> Result<MessageExchangeHeads, Self::Error>;
}