Struct bevy_ecs::archetype::Edges

source ·
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 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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast for Twhere 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 Twhere 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 Twhere T: Default,

source§

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

Creates Self using data from the given World.
§

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