[][src]Enum savefile::Schema

pub enum Schema {
    Struct(SchemaStruct),
    Enum(SchemaEnum),
    Primitive(SchemaPrimitive),
    Vector(Box<Schema>),
    Array(SchemaArray),
    SchemaOption(Box<Schema>),
    Undefined,
    ZeroSize,
}

The schema represents the save file format of your data structure. It is an AST (Abstract Syntax Tree) for consisting of various types of nodes in the savefile format. Custom Serialize-implementations cannot add new types to this tree, but must reuse these existing ones. See the various enum variants for more information:

Variants

Struct(SchemaStruct)

Represents a struct. Custom implementations of Serialize may use this format are encouraged to use this format.

Represents an enum

Primitive(SchemaPrimitive)

Represents a primitive: Any of the various integer types (u8, i8, u16, i16 etc...), or String

Vector(Box<Schema>)

A Vector of arbitrary nodes, all of the given type

An array of N arbitrary nodes, all of the given type

SchemaOption(Box<Schema>)

An Option variable instance of the given type.

Undefined

Basically a dummy value, the Schema nodes themselves report this schema if queried.

ZeroSize

A zero-sized type. I.e, there is no data to serialize or deserialize.

Implementations

impl Schema[src]

pub fn new_tuple1<T1: WithSchema>(version: u32) -> Schema[src]

Create a 1-element tuple

pub fn new_tuple2<T1: WithSchema, T2: WithSchema>(version: u32) -> Schema[src]

Create a 2-element tuple

pub fn new_tuple3<T1: WithSchema, T2: WithSchema, T3: WithSchema>(
    version: u32
) -> Schema
[src]

Create a 3-element tuple

pub fn new_tuple4<T1: WithSchema, T2: WithSchema, T3: WithSchema, T4: WithSchema>(
    version: u32
) -> Schema
[src]

Create a 4-element tuple

pub fn serialized_size(&self) -> Option<usize>[src]

Size

Trait Implementations

impl Debug for Schema[src]

impl Deserialize for Schema[src]

impl PartialEq<Schema> for Schema[src]

impl Serialize for Schema[src]

impl StructuralPartialEq for Schema[src]

impl WithSchema for Schema[src]

Auto Trait Implementations

impl RefUnwindSafe for Schema

impl Send for Schema

impl Sync for Schema

impl Unpin for Schema

impl UnwindSafe for Schema

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,