OwnedVersionedData

Trait OwnedVersionedData 

Source
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§

Source

fn wrap_latest(latest: Self::Latest) -> Self

Source

fn unwrap_latest(self) -> Result<Self::Latest>

Source

fn deserialize_version(payload: &[u8], version: u16) -> Result<Self>

Source

fn serialize_version(self, version: u16) -> Result<Vec<u8>>

Provided Methods§

Source

fn deserialize_converters() -> Vec<impl Fn(Self) -> Result<Self>>

Source

fn serialize_converters() -> Vec<impl Fn(Self) -> Result<Self>>

Source

fn deserialize(payload: &[u8], version: u16) -> Result<Self::Latest>

Source

fn serialize(self, version: u16) -> Result<Vec<u8>>

Source

fn deserialize_with_embedded_version(payload: &[u8]) -> Result<Self::Latest>

Source

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.

Implementors§