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
impl Edges
Sourcepub fn get_archetype_after_bundle_insert(
&self,
bundle_id: BundleId,
) -> Option<ArchetypeId>
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.
Sourcepub fn get_archetype_after_bundle_remove(
&self,
bundle_id: BundleId,
) -> Option<Option<ArchetypeId>>
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.
Sourcepub fn get_archetype_after_bundle_take(
&self,
bundle_id: BundleId,
) -> Option<Option<ArchetypeId>>
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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self
using default()
.