Trait savefile::WithSchema

source ·
pub trait WithSchema {
    // Required method
    fn schema(version: u32) -> Schema;
}
Expand description

This trait must be implemented by all data structures you wish to be able to save. It must encode the schema for the datastructure when saved using the given version number. When files are saved, the schema is encoded into the file. when loading, the schema is inspected to make sure that the load will safely succeed. This is only for increased safety, the file format does not in fact use the schema for any other purpose, the design is schema-less at the core, the schema is just an added layer of safety (which can be disabled).

Required Methods§

source

fn schema(version: u32) -> Schema

Returns a representation of the schema used by this Serialize implementation for the given version.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl WithSchema for bool

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for char

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for f32

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for f64

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for i8

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for i16

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for i32

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for i64

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for i128

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for isize

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for u8

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for u16

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for u32

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for u64

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for u128

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for ()

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for usize

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for BitSet

source§

fn schema(version: u32) -> Schema

source§

impl WithSchema for BitVec

source§

fn schema(version: u32) -> Schema

source§

impl WithSchema for String

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for Arc<str>

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicBool

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicI8

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicI16

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicI32

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicI64

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicIsize

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicU8

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicU16

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicU32

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicU64

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for AtomicUsize

source§

fn schema(_version: u32) -> Schema

source§

impl WithSchema for PathBuf

source§

fn schema(_version: u32) -> Schema

source§

impl<'a, T: 'a + WithSchema + ToOwned + ?Sized> WithSchema for Cow<'a, T>

source§

fn schema(version: u32) -> Schema

source§

impl<K: WithSchema + Eq + Hash, S: BuildHasher> WithSchema for IndexSet<K, S>

source§

fn schema(version: u32) -> Schema

source§

impl<K: WithSchema + Eq + Hash, V: WithSchema, S: BuildHasher> WithSchema for IndexMap<K, V, S>

source§

fn schema(version: u32) -> Schema

source§

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

source§

fn schema(version: u32) -> Schema

source§

impl<K: WithSchema, S: BuildHasher> WithSchema for HashSet<K, S>

source§

fn schema(version: u32) -> Schema

source§

impl<K: WithSchema, V: WithSchema> WithSchema for BTreeMap<K, V>

source§

fn schema(version: u32) -> Schema

source§

impl<T1: WithSchema> WithSchema for (T1,)

source§

fn schema(version: u32) -> Schema

source§

impl<T1: WithSchema> WithSchema for Range<T1>

source§

fn schema(version: u32) -> Schema

source§

impl<T1: WithSchema, T2: WithSchema> WithSchema for (T1, T2)

source§

fn schema(version: u32) -> Schema

source§

impl<T1: WithSchema, T2: WithSchema, T3: WithSchema> WithSchema for (T1, T2, T3)

source§

fn schema(version: u32) -> Schema

source§

impl<T> WithSchema for PhantomData<T>

source§

fn schema(_version: u32) -> Schema

source§

impl<T: Array> WithSchema for SmallVec<T>
where T::Item: WithSchema,

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Option<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Box<[T]>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Box<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for BinaryHeap<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for VecDeque<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Rc<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Arc<[T]>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Arc<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Vec<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Cell<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for RefCell<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Mutex<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for Mutex<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema> WithSchema for RwLock<T>

source§

fn schema(version: u32) -> Schema

source§

impl<T: WithSchema, const N: usize> WithSchema for [T; N]

source§

fn schema(version: u32) -> Schema

source§

impl<V: WithSchema, const C: usize> WithSchema for ArrayVec<V, C>

source§

fn schema(version: u32) -> Schema

source§

impl<const C: usize> WithSchema for ArrayString<C>

source§

fn schema(_version: u32) -> Schema

Implementors§