use std::error::Error;
pub trait Serializer<ReceivingPacket, SendingPacket>: Send + Sync + 'static {
type Error: Error + Send + Sync;
fn serialize(&self, t: SendingPacket) -> Result<Vec<u8>, Self::Error>;
fn deserialize(&self, buffer: &[u8]) -> Result<ReceivingPacket, Self::Error>;
}