Save and load entities from various formats with serde.
This module provides two
Reading those makes it very easy to serialize or deserialize components.
DeserializeOwned, so serializing / deserializing should be very
Because you usually don’t want to serialize everything, we use
markers to say which entities we’re interested in. However, these markers
aren’t just boolean values; we also have id spaces which allow us
to identify entities even if local ids are different. The allocation
of these ids is what
MarkerAllocators are responsible for. For an example,
see the docs for the
A struct used for deserializing entity data.
Basic marker implementation usable for saving and loading, uses
Basic marker allocator, uses
u64 as identifier
Basic marker uuid implementation usable for saving and loading.
Basic marker allocator for uuid.
Converts a data type (usually a
Component) into its serializable form
and back to actual data from it’s deserialized form.
A trait which allows to deserialize entities and their components.
A common trait for
LazyBuilder with a marker function,
allowing either to be used.
This trait should be implemented by a component which is going to be used as
marker. This marker should be set to entity that should be serialized.
If serialization strategy needs to set marker to some entity
then it should use newly allocated marker from
This allocator is used with the
It provides a method for allocating new
It should also provide a
Marker -> Entity mapping.
maintain method can be implemented for cleanup and actualization.
See docs for
Marker for an example.
A trait which allows to serialize entities and their components.