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() -> TypeIdwhere Self: 'static,

Returns the type id of this type.

Implementations on Foreign Types§

source§

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

source§

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

source§

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

source§

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

source§

impl Revisioned for Polygon

source§

impl Revisioned for Decimal

source§

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

source§

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

source§

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

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<T> Revisioned for [T; 26]where T: Copy + Default + Revisioned,

source§

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

source§

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

source§

impl Revisioned for MultiLineString

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 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 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 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<T> Revisioned for [T; 25]where T: Copy + Default + Revisioned,

source§

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

source§

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

source§

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

source§

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

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 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<T> Revisioned for [T; 5]where T: Copy + Default + Revisioned,

source§

impl Revisioned for String

source§

impl Revisioned for MultiPoint

source§

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

source§

impl Revisioned for Uuid

source§

impl Revisioned for RoaringTreemap

source§

impl Revisioned for Point

source§

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

source§

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

source§

impl Revisioned for Regex

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<T> Revisioned for [T; 6]where T: Copy + Default + Revisioned,

source§

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

source§

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

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<T> Revisioned for [T; 31]where T: Copy + Default + Revisioned,

source§

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

source§

impl Revisioned for RoaringBitmap

source§

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

source§

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

source§

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

source§

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

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<T> Revisioned for Cow<'_, T>where T: Sized + ToOwned + Revisioned, T::Owned: Revisioned,

source§

impl Revisioned for DateTime<Utc>

source§

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

source§

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

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 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 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 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<T> Revisioned for [T; 13]where T: Copy + Default + Revisioned,

source§

impl Revisioned for MultiPolygon

source§

impl Revisioned for Duration

source§

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

source§

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

source§

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

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 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<T: Revisioned> Revisioned for Bound<T>

source§

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

source§

impl Revisioned for LineString

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

Implementors§