pub trait Codec: Decoder<DeMessage = Self::Message, DeError = Self::Error> + Encoder<EnMessage = Self::Message, EnError = Self::Error> + Send + Sync + Unpin { type Message: Send + Sync; type Error; }