pub struct Table { /* private fields */ }
Expand description
A column-oriented structure-of-arrays based storage for Component
s of entities
in a World
.
Conceptually, a Table
can be thought of as an HashMap<ComponentId, Column>
, where
each Column
is a type-erased Vec<T: Component>
. Each row corresponds to a single entity
(i.e. index 3 in Column A and index 3 in Column B point to different components on the same
entity). Fetching components from a table involves fetching the associated column for a
component type (via its ComponentId
), then fetching the entity’s row within that column.
Implementations§
Source§impl Table
impl Table
Sourcepub fn entities(&self) -> &[Entity]
pub fn entities(&self) -> &[Entity]
Fetches a read-only slice of the entities stored within the Table
.
Sourcepub fn get_column(&self, component_id: ComponentId) -> Option<&Column>
pub fn get_column(&self, component_id: ComponentId) -> Option<&Column>
Sourcepub fn has_column(&self, component_id: ComponentId) -> bool
pub fn has_column(&self, component_id: ComponentId) -> bool
Sourcepub fn entity_count(&self) -> usize
pub fn entity_count(&self) -> usize
Gets the number of entities currently being stored in the table.
Sourcepub fn component_count(&self) -> usize
pub fn component_count(&self) -> usize
Gets the number of components being stored in the table.
Sourcepub fn entity_capacity(&self) -> usize
pub fn entity_capacity(&self) -> usize
Gets the maximum number of entities the table can currently store without reallocating the underlying memory.