Module storage

Source
Expand description

Component storage types, implementations for component joins, etc.

Structs§

AntiStorage
An inverted storage type, only useful to iterate entities that do not have a particular component type.
BTreeStorage
BTreeMap-based storage.
DenseVecStorage
Dense vector storage. Has a redirection 2-way table between entities and components, allowing to leave no gaps within the data.
Entries
Join-able structure that yields all indices, returning Entry for all elements
FlaggedStorage
Wrapper storage that tracks modifications, insertions, and removals of components through an EventChannel.
HashMapStorage
HashMap-based storage. Best suited for rare components.
MaskedStorage
The UnprotectedStorage together with the BitSet that knows about which elements are stored, and which are not.
NullStorage
A null storage type, used for cases where the component doesn’t contain any data and instead works as a simple flag.
OccupiedEntry
An entry to a storage which has a component associated to the entity.
RestrictedStorage
Similar to a MaskedStorage and a Storage combined, but restricts usage to only getting and modifying the components. That means it’s not possible to modify the inner bitset so the iteration cannot be invalidated. In other words, no insertion or removal is allowed.
Storage
A wrapper around the masked storage and the generations vector. Can be used for safe lookup of components, insertions and removes. This is what World::read/write fetches for the user.
VacantEntry
An entry to a storage which does not have a component associated to the entity.
VecStorage
Vector storage. Uses a simple Vec. Supposed to have maximum performance for the components mostly present in entities.

Enums§

ComponentEvent
Component storage events received from a FlaggedStorage or any storage that implements Tracked.
ImmutableParallelRestriction
Specifies that the RestrictedStorage can run in parallel immutably.
MutableParallelRestriction
Specifies that the RestrictedStorage can run in parallel mutably.
SequentialRestriction
Specifies that the RestrictedStorage cannot run in parallel.
StorageEntry
Entry to a storage for convenient filling of components or removal based on whether the entity has a component.

Traits§

AnyStorage
A dynamic storage.
DistinctStorage
This is a marker trait which requires you to uphold the following guarantee:
GenericReadStorage
Provides generic read access to both ReadStorage and WriteStorage
GenericWriteStorage
Provides generic write access to WriteStorage, both as a value and a mutable reference.
Tracked
UnprotectedStorages that track modifications, insertions, and removals of components.
TryDefault
Tries to create a default value, returns an Err with the name of the storage and/or component if there’s no default.
UnprotectedStorage
Used by the framework to quickly join components.

Type Aliases§

InsertResult
The status of an insert()ion into a storage. If the insertion was successful then the Ok value will contain the component that was replaced (if any).
ReadStorage
A storage with read access.
WriteStorage
A storage with read and write access.