use std::{fmt::Debug, io::Error};
use super::framer::Framer;
pub trait Messenger: Framer + Debug + Send + Sync + 'static {
type SendT: Debug;
type RecvT: Debug;
fn serialize<const MAX_MSG_SIZE: usize>(msg: &Self::SendT) -> Result<([u8; MAX_MSG_SIZE], usize), Error>;
fn deserialize(frame: &[u8]) -> Result<Self::RecvT, Error>;
}