pub struct Entity { /* private fields */ }
Expand description

Associates a group of components within the world.

Entities are mostly just usize identifiers that help locate components, but Entity comes with some conveniences.

After an entity is created you can attach and remove bundles of components asynchronously (or “lazily” if not in an async context).

let mut world = World::default();
// asynchronously create new entities from within an async system
world.with_async_system("spawn-b-entity", |mut facade: Facade| async move {
    let mut b = facade
        .visit(|mut ents: Write<Entities>| {
            Ok(ents.create().with_bundle((123, "entity B", true)))
        })
        .await?;
    // after this await `b` has its bundle
    b.updates().await;
    // visit a component or bundle
    let did_visit = b
        .visit::<&&str, ()>(|name| assert_eq!("entity B", *name.value()))
        .await
        .is_some();
    Ok(())
});
world.run();

Alternatively, if you have access to the Components resource you can attach components directly and immediately.

Implementations

Lazily add a component bundle to archetype storage.

This entity will have the associated components after the next tick.

Lazily add a component bundle to archetype storage.

This entity will have the associated components after the next tick.

Lazily add a component bundle to archetype storage.

This entity will have the associated component after the next tick.

Lazily remove a component bundle to archetype storage.

This entity will have lost the associated component after the next tick.

Await a future that completes after all lazy updates have been performed.

Visit this entity’s query row in storage, if it exists.

Panics

Panics if the query is malformed (the bundle is not unique).

Methods from Deref<Target = usize>

Trait Implementations

You may clone entities, but each one does its own lazy updates, separate from all other clones.

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
The resulting type after dereferencing.
Dereferences the value.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.