pub trait DataFormat {
type PackError: Display;
type UnpackError: Display;
// Required methods
fn pack<D: Serialize>(data: &D) -> Result<Vec<u8>, Self::PackError>;
fn unpack<'de, T: Deserialize<'de>>(
payload: &'de [u8],
) -> Result<T, Self::UnpackError>;
}Expand description
A trait for data formats that can be packed and unpacked.
Required Associated Types§
Sourcetype UnpackError: Display
type UnpackError: Display
The error type for unpacking.
Required Methods§
Sourcefn pack<D: Serialize>(data: &D) -> Result<Vec<u8>, Self::PackError>
fn pack<D: Serialize>(data: &D) -> Result<Vec<u8>, Self::PackError>
Pack data into a byte vector.
Sourcefn unpack<'de, T: Deserialize<'de>>(
payload: &'de [u8],
) -> Result<T, Self::UnpackError>
fn unpack<'de, T: Deserialize<'de>>( payload: &'de [u8], ) -> Result<T, Self::UnpackError>
Unpack data from a byte slice.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.