Struct 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_archetype_after_bundle_insert( &self, bundle_id: BundleId, ) -> Option<ArchetypeId>

Checks the cache for the target archetype when inserting a bundle into the source archetype.

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

Source

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

Checks the cache for the target archetype when removing a bundle from the source archetype.

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_archetype_after_bundle_take( &self, bundle_id: BundleId, ) -> Option<Option<ArchetypeId>>

Checks the cache for the target archetype when taking a bundle from the source archetype.

Unlike remove, take will only succeed if the source archetype contains all of the components in the bundle.

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 taken from the source archetype.

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>

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

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

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

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

Converts &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)

Converts &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> 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 default().

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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