specs

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.
DefaultVecStorage
Vector storage, like VecStorage, but allows safe access to the interior slices because unused slots are always initialized.
DenseVecStorage
Dense vector storage. Has a redirection 2-way table between entities and components, allowing to leave no gaps within the data.
DerefFlaggedStorage
Wrapper storage that tracks modifications, insertions, and removals of components through an EventChannel, in a similar manner to FlaggedStorage.
Entries
LendJoin-able structure that yields all indices, returning StorageEntry for all elements.
FlaggedAccessMut
Wrapper type only emits modificaition events when the component is accessed via mutably dereferencing. Also see DerefFlaggedStorage documentation.
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.
PairedStorageRead
Pairs a storage with an index, meaning that the index is guaranteed to exist as long as the PairedStorage<C> exists.
PairedStorageWriteExclusive
Pairs a storage with an index, meaning that the index is guaranteed to exist.
PairedStorageWriteShared
Pairs a storage with an index, meaning that the index is guaranteed to exist.
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.
SharedGetMutOnly
This type provides a way to ensure only shared_get_mut can be called for the lifetime 'a and that no references previously obtained from the storage exist when it is created. While internally this is a shared reference, constructing it requires an exclusive borrow for the lifetime 'a.
SharedGetOnly
This type provides a way to ensure only shared_get_mut and get can be called for the lifetime 'a and that no references previously obtained from the storage exist when it is created. While internally this is a shared reference, constructing it requires an exclusive borrow for the lifetime 'a.
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.
StorageEntry
Entry to a storage for convenient filling of components or removal based on whether the entity has a component.

Traits§

AccessMut
DerefMut without autoderefing.
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.
SharedGetMutStorage
Used by the framework to mutably access components in contexts where exclusive access to the storage is not possible.
SliceAccess
Some storages can provide slices to access the underlying data.
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.