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

Represents an Entity that can be manipulated asynchronously.

The easiest way to get an AsyncEntity is with AsyncWorld::spawn_empty().

Dropping the AsyncEntity WILL NOT despawn the corresponding entity in the synchronous world. Use AsyncEntity::despawn to despawn an entity asynchronously.

Implementations§

source§

impl AsyncEntity

source

pub fn id(&self) -> Entity

Returns the underlying Entity being represented.

source

pub fn sender(&self) -> CommandQueueSender

Returns a copy of the underlying CommandQueueSender.

source

pub async fn despawn(self)

Recursively despawns the represented entity.

source

pub async fn insert<B: Bundle>(&self, bundle: B)

Adds a Bundle of components to the entity. This will overwrite any previous value(s) of the same component type.

source

pub async fn remove<B: Bundle>(&self)

Removes a Bundle of components from the entity.

source

pub async fn start_waiting_for<C: Component + Clone>(&self) -> AsyncComponent<C>

Start waiting for the Component of a given type. Returns an AsyncComponent which can be further waited to receive the value of the component.

AsyncComponent::wait_for().await is equivalent to AsyncComponent::start_waiting_for().await.wait().await.

source

pub async fn wait_for<C: Component + Clone>(&self) -> C

Wait for the Component of a given type. Returns the value of the component, once it exists on the represented entity.

AsyncComponent::wait_for().await is equivalent to AsyncComponent::start_waiting_for().await.wait().await.

source

pub async fn insert_wait_remove<I: Component, WR: Component + Clone>( &self, component: I ) -> WR

Insert the given Component of type I onto the entity, then immediately wait for a component of type WR to be added to the entity. After one is received, this will then remove the component of type WR.

Trait Implementations§

source§

impl Debug for AsyncEntity

source§

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

Formats the value using the given formatter. Read more

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
§

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

§

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

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

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

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

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

§

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.

§

impl<T> Instrument for T

§

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

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

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>,

§

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>,

§

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

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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