pub enum Schema {
Struct(SchemaStruct),
Enum(SchemaEnum),
Primitive(SchemaPrimitive),
Vector(Box<Schema>),
Array(SchemaArray),
SchemaOption(Box<Schema>),
Undefined,
ZeroSize,
Custom(String),
}
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.
Custom(String)
A user-defined, custom type. The string can be anything. The schema only matches if the string is identical
Implementations§
source§impl 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