Trait revision::Revisioned

source ·
pub trait Revisioned {
    // Required methods
    fn revision() -> u16;
    fn serialize_revisioned<W: Write>(&self, w: &mut W) -> Result<(), Error>;
    fn deserialize_revisioned<R: Read>(r: &mut R) -> Result<Self, Error>
       where Self: Sized;

    // Provided method
    fn type_id() -> TypeId
       where Self: 'static { ... }
}
Expand description

Trait that provides an interface for version aware serialization and deserialization.

Example implementation

use revision::Error;
use revision::Revisioned;

struct MyType<T>(T);

impl<T> Revisioned for MyType<T>
where
    T: Revisioned,
{
    #[inline]
    fn serialize_revisioned<W: std::io::Write>(&self, writer: &mut W) -> Result<(), Error> {
        self.0.serialize_revisioned(writer)
    }

    #[inline]
    fn deserialize_revisioned<R: std::io::Read>(reader: &mut R) -> Result<Self, Error> {
        Ok(MyType(T::deserialize_revisioned(reader)?))
    }

    fn revision() -> u16 {
        1
    }
}

Required Methods§

source

fn revision() -> u16

Returns the current revision of this type.

source

fn serialize_revisioned<W: Write>(&self, w: &mut W) -> Result<(), Error>

Serializes the struct using the specficifed writer.

source

fn deserialize_revisioned<R: Read>(r: &mut R) -> Result<Self, Error>
where Self: Sized,

Deserializes a new instance of the struct from the specficifed reader.

Provided Methods§

source

fn type_id() -> TypeId
where Self: 'static,

Returns the type id of this type.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Revisioned for bool

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for char

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for f32

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for f64

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for i8

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for i16

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for i32

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for i64

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for i128

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for isize

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for u8

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for u16

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for u32

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for u64

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for u128

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for usize

source§

fn serialize_revisioned<W: Write>(&self, writer: &mut W) -> Result<(), Error>

source§

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

source§

fn revision() -> u16

source§

impl Revisioned for String

source§

impl Revisioned for Duration

source§

impl Revisioned for PathBuf

source§

impl<A, B> Revisioned for (A, B)
where A: Revisioned, B: Revisioned,

source§

impl<A, B, C> Revisioned for (A, B, C)
where A: Revisioned, B: Revisioned, C: Revisioned,

source§

impl<A, B, C, D> Revisioned for (A, B, C, D)

source§

impl<A, B, C, D, E> Revisioned for (A, B, C, D, E)

source§

impl<E: Revisioned, T: Revisioned> Revisioned for Result<T, E>

source§

impl<K: Revisioned + Eq + Hash, V: Revisioned, S: BuildHasher + Default> Revisioned for HashMap<K, V, S>

source§

impl<K: Revisioned + Ord, V: Revisioned> Revisioned for BTreeMap<K, V>

source§

impl<T> Revisioned for Cow<'_, T>

source§

impl<T> Revisioned for Option<T>
where T: Revisioned,

source§

impl<T> Revisioned for [T; 1]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 2]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 3]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 4]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 5]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 6]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 7]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 8]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 9]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 10]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 11]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 12]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 13]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 14]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 15]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 16]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 17]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 18]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 19]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 20]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 21]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 22]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 23]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 24]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 25]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 26]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 27]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 28]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 29]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 30]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 31]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for [T; 32]
where T: Copy + Default + Revisioned,

source§

impl<T> Revisioned for Box<T>
where T: Revisioned,

source§

impl<T> Revisioned for Vec<T>
where T: Revisioned,

source§

impl<T> Revisioned for Reverse<T>
where T: Revisioned,

source§

impl<T> Revisioned for Wrapping<T>
where T: Revisioned,

source§

impl<T: Revisioned + Eq + Ord> Revisioned for BTreeSet<T>

source§

impl<T: Revisioned + Eq + Hash, S: BuildHasher + Default> Revisioned for HashSet<T, S>

source§

impl<T: Revisioned + Ord> Revisioned for BinaryHeap<T>

source§

impl<T: Revisioned> Revisioned for Bound<T>

Implementors§