1use std::io;
4
5use serde::de::DeserializeOwned;
6
7use crate::framing::Framing;
8
9pub trait Codec: Framing {
10 fn encode<T: serde::Serialize>(msg: &T) -> io::Result<Self::Buf>;
11 fn decode<T: DeserializeOwned>(buf: &mut Self::Buf) -> io::Result<T>;
12}