Skip to main content

VersionedLatest

Trait VersionedLatest 

Source
pub trait VersionedLatest: Versioned + TypeFingerprint {
    // Required method
    fn deserialize_from_version<R>(
        reader: &mut R,
        version: Version,
    ) -> Result<Self>
       where R: Read,
             Self: Sized;

    // Provided methods
    fn deserialize_with_version<R>(reader: &mut R) -> Result<(Self, Version)>
       where R: Read,
             Self: Sized { ... }
    fn serialize_with_version<W>(&self, writer: &mut W) -> Result<()>
       where W: Write,
             Self: Sized { ... }
}
Expand description

This trait is only assigned to the latest version of a type and allows the type to deserialize any older versions and upgrade them to the latest format.

Required Methods§

Source

fn deserialize_from_version<R>(reader: &mut R, version: Version) -> Result<Self>
where R: Read, Self: Sized,

Deserializes from a given version format and upgrades to the latest version.

Provided Methods§

Source

fn deserialize_with_version<R>(reader: &mut R) -> Result<(Self, Version)>
where R: Read, Self: Sized,

Like deserialize_from_version but reads Version from reader first, then uses it to deserialize self.

Source

fn serialize_with_version<W>(&self, writer: &mut W) -> Result<()>
where W: Write, Self: Sized,

Like serialize_into but serialized Version first, then self.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§