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§
Provided Methods§
Sourcefn deserialize_with_version<R>(reader: &mut R) -> Result<(Self, Version)>
fn deserialize_with_version<R>(reader: &mut R) -> Result<(Self, Version)>
Like deserialize_from_version
but reads Version from reader first, then uses it to
deserialize self.
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.