pub enum Schema {
    Struct(SchemaStruct),
    Enum(SchemaEnum),
    Primitive(SchemaPrimitive),
    Vector(Box<Schema>),
    Array(SchemaArray),
    SchemaOption(Box<Schema>),
    Undefined,
    ZeroSize,
}Expand description
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.
Enum(SchemaEnum)
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
Array(SchemaArray)
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
sourceimpl Schema
 
impl Schema
sourcepub fn new_tuple1<T1: WithSchema>(version: u32) -> Schema
 
pub fn new_tuple1<T1: WithSchema>(version: u32) -> Schema
Create a 1-element tuple
sourcepub fn new_tuple2<T1: WithSchema, T2: WithSchema>(version: u32) -> Schema
 
pub fn new_tuple2<T1: WithSchema, T2: WithSchema>(version: u32) -> Schema
Create a 2-element tuple
sourcepub fn new_tuple3<T1: WithSchema, T2: WithSchema, T3: WithSchema>(
    version: u32
) -> Schema
 
pub fn new_tuple3<T1: WithSchema, T2: WithSchema, T3: WithSchema>(
    version: u32
) -> Schema
Create a 3-element tuple
sourcepub fn new_tuple4<T1: WithSchema, T2: WithSchema, T3: WithSchema, T4: WithSchema>(
    version: u32
) -> Schema
 
pub fn new_tuple4<T1: WithSchema, T2: WithSchema, T3: WithSchema, T4: WithSchema>(
    version: u32
) -> Schema
Create a 4-element tuple
sourcepub fn serialized_size(&self) -> Option<usize>
 
pub fn serialized_size(&self) -> Option<usize>
Size
Trait Implementations
sourceimpl Deserialize for Schema
 
impl Deserialize for Schema
sourcefn deserialize(
    deserializer: &mut Deserializer<'_>
) -> Result<Self, SavefileError>
 
fn deserialize(
    deserializer: &mut Deserializer<'_>
) -> Result<Self, SavefileError>
Deserialize and return an instance of Self from the given deserializer.
sourceimpl Serialize for Schema
 
impl Serialize for Schema
sourcefn serialize(
    &self, 
    serializer: &mut Serializer<'_>
) -> Result<(), SavefileError>
 
fn serialize(
    &self, 
    serializer: &mut Serializer<'_>
) -> Result<(), SavefileError>
Serialize self into the given serializer.
sourceimpl WithSchema for Schema
 
impl WithSchema for Schema
impl StructuralPartialEq for Schema
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
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
 
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more