Module specs::storage [] [src]

Component storages, implementations for component joins, etc. Storage types

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.

FlaggedStorage

Wrapper storage that tracks modifications, insertions, and removals of components through an EventChannel.

HashMapStorage

HashMap-based storage. Best suited for rare components.

InsertedFlag

Flag with additional type safety against which kind of operations were done.

MaskedStorage

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

ModifiedFlag

Flag with additional type safety against which kind of operations were done.

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.

PackedData

Structure of packed components with offsets of which entities they belong to. Offsets define which entities the components correspond to, based on a list of entities the packed data is sent in with.

RemovedFlag

Flag with additional type safety against which kind of operations were done.

RestrictedStorage

Similar to a MaskedStorage and a Storage combined, but restricts usage to only getting and modifying the components. That means nothing that would modify the inner bitset so the iteration cannot be invalidated. For example, 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.

TrackChannels

All three types of tracked modifications to components.

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

ImmutableParallelRestriction

Specifies that the RestrictedStorage can run in parallel immutably.

InsertResult

The status of an insert()ion into a storage.

MergeError

The error type returned by Storage::merge.

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 Definitions

ReadStorage

A storage with read access.

WriteStorage

A storage with read and write access.