[]Module oxygengine::core::ecs::storage

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.

Entries

Join-able structure that yields all indices, returning Entry for all elements

MaskedStorage

The UnprotectedStorage together with the BitSet that knows about which elements are stored, and which are not.

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.

VacantEntry

An entry to a storage which does not have a component associated to the entity.

Enums

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.

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 Definitions

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).