pub trait OwnedVersionedData: Sized {
type Latest;
// Required methods
fn wrap_latest(latest: Self::Latest) -> Self;
fn unwrap_latest(self) -> Result<Self::Latest>;
fn deserialize_version(payload: &[u8], version: u16) -> Result<Self>;
fn serialize_version(self, version: u16) -> Result<Vec<u8>>;
// Provided methods
fn deserialize_converters() -> Vec<impl Fn(Self) -> Result<Self>> { ... }
fn serialize_converters() -> Vec<impl Fn(Self) -> Result<Self>> { ... }
fn deserialize(payload: &[u8], version: u16) -> Result<Self::Latest> { ... }
fn serialize(self, version: u16) -> Result<Vec<u8>> { ... }
fn deserialize_with_embedded_version(payload: &[u8]) -> Result<Self::Latest> { ... }
fn serialize_with_embedded_version(self, version: u16) -> Result<Vec<u8>> { ... }
}Required Associated Types§
Required Methods§
fn wrap_latest(latest: Self::Latest) -> Self
fn unwrap_latest(self) -> Result<Self::Latest>
fn deserialize_version(payload: &[u8], version: u16) -> Result<Self>
fn serialize_version(self, version: u16) -> Result<Vec<u8>>
Provided Methods§
fn deserialize_converters() -> Vec<impl Fn(Self) -> Result<Self>>
fn serialize_converters() -> Vec<impl Fn(Self) -> Result<Self>>
fn deserialize(payload: &[u8], version: u16) -> Result<Self::Latest>
fn serialize(self, version: u16) -> Result<Vec<u8>>
fn deserialize_with_embedded_version(payload: &[u8]) -> Result<Self::Latest>
fn serialize_with_embedded_version(self, version: u16) -> Result<Vec<u8>>
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.