Skip to main content

Entities

Struct Entities 

Source
pub struct Entities { /* private fields */ }

Implementations§

Source§

impl Entities

Source

pub fn reserve_entities(&self, count: u32) -> ReserveEntitiesIterator<'_>

Reserve entity IDs concurrently.

Storage for entity generation and location is lazily allocated by calling flush.

Source

pub fn reserve_entity(&self) -> Entity

Reserve one entity ID concurrently.

Equivalent to self.reserve_entities(1).next().unwrap(), but more efficient.

Source

pub fn alloc(&mut self) -> Entity

Allocate an entity ID directly.

Source

pub fn alloc_at(&mut self, entity: Entity) -> Option<EntityLocation>

Allocate a specific entity ID, overwriting its generation.

Returns the location of the entity currently using the given ID, if any. Location should be written immediately.

Source

pub fn alloc_at_without_replacement( &mut self, entity: Entity, ) -> AllocAtWithoutReplacement

Allocate a specific entity ID, overwriting its generation.

Returns the location of the entity currently using the given ID, if any.

Source

pub fn free(&mut self, entity: Entity) -> Option<EntityLocation>

Destroy an entity, allowing it to be reused.

Must not be called while reserved entities are awaiting flush().

Source

pub fn reserve(&mut self, additional: u32)

Ensure at least n allocations can succeed without reallocating.

Source

pub fn contains(&self, entity: Entity) -> bool

Returns true if the Entities contains entity.

Source

pub fn clear(&mut self)

Source

pub fn get(&self, entity: Entity) -> Option<EntityLocation>

Returns Ok(Location { archetype: Archetype::invalid(), index: undefined }) for pending entities.

Source

pub fn resolve_from_id(&self, index: u32) -> Option<Entity>

Get the Entity with a given id, if it exists in this Entities collection Returns None if this Entity is outside of the range of currently reserved Entities

Note: This method may return Entities which are currently free Note that contains will correctly return false for freed entities, since it checks the generation

Source

pub unsafe fn flush(&mut self, init: impl FnMut(Entity, &mut EntityLocation))

Allocates space for entities previously reserved with reserve_entity or reserve_entities, then initializes each one using the supplied function.

§Safety

Flush must set the entity location to the correct ArchetypeId for the given Entity each time init is called. This can be ArchetypeId::INVALID, provided the Entity has not been assigned to an Archetype.

Note: freshly-allocated entities (ones which don’t come from the pending list) are guaranteed to be initialized with the invalid archetype.

Source

pub fn flush_as_invalid(&mut self)

Source

pub unsafe fn flush_and_reserve_invalid_assuming_no_entities( &mut self, count: usize, )

§Safety

This function is safe if and only if the world this Entities is on has no entities.

Source

pub fn meta_len(&self) -> usize

Accessor for getting the length of the vec in self.meta

Source

pub fn len(&self) -> u32

Source

pub fn is_empty(&self) -> bool

Trait Implementations§

Source§

impl Debug for Entities

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for Entities

Source§

fn default() -> Entities

Returns the “default value” for a type. Read more
Source§

impl<'a> SystemParam for &'a Entities

Source§

type Fetch = EntitiesState

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given World
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> Event for T
where T: Send + Sync + 'static,