rill_protocol/io/
codec.rs

1use crate::encoding;
2use anyhow::Error;
3use meio_protocol::{ProtocolCodec, ProtocolData};
4
5pub struct BinaryCodec;
6
7impl ProtocolCodec for BinaryCodec {
8    fn decode<T: ProtocolData>(data: &[u8]) -> Result<T, Error> {
9        encoding::from_slice(data).map_err(Error::from)
10    }
11
12    fn encode<T: ProtocolData>(value: &T) -> Result<Vec<u8>, Error> {
13        encoding::to_vec(value).map_err(Error::from)
14    }
15}