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

Archetypes and bundles form a graph. Adding or removing a bundle moves an Entity to a new Archetype.

Edges caches the results of these moves. Each archetype caches the result of a structural alteration. This can be used to monitor the state of the archetype graph.

Note: This type only contains edges the World has already traversed. If any of functions return None, it doesn’t mean there is guaranteed not to be a result of adding or removing that bundle, but rather that operation that has moved an entity along that edge has not been performed yet.

Implementations§

source§

impl Edges

source

pub fn get_add_bundle(&self, bundle_id: BundleId) -> Option<ArchetypeId>

Checks the cache for the target archetype when adding a bundle to the source archetype. For more information, see EntityWorldMut::insert.

If this returns None, it means there has not been a transition from the source archetype via the provided bundle.

source

pub fn get_remove_bundle( &self, bundle_id: BundleId ) -> Option<Option<ArchetypeId>>

Checks the cache for the target archetype when removing a bundle to the source archetype. For more information, see EntityWorldMut::remove.

If this returns None, it means there has not been a transition from the source archetype via the provided bundle.

If this returns Some(None), it means that the bundle cannot be removed from the source archetype.

source

pub fn get_take_bundle( &self, bundle_id: BundleId ) -> Option<Option<ArchetypeId>>

Checks the cache for the target archetype when removing a bundle to the source archetype. For more information, see EntityWorldMut::remove.

If this returns None, it means there has not been a transition from the source archetype via the provided bundle.

Trait Implementations§

source§

impl Default for Edges

source§

fn default() -> Edges

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

Auto Trait Implementations§

§

impl Freeze for Edges

§

impl RefUnwindSafe for Edges

§

impl Send for Edges

§

impl Sync for Edges

§

impl Unpin for Edges

§

impl UnwindSafe for Edges

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

§

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