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_add_bundle(&self, bundle_id: BundleId) -> Option<ArchetypeId>
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.
sourcepub fn get_remove_bundle(
&self,
bundle_id: BundleId
) -> Option<Option<ArchetypeId>>
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.
sourcepub fn get_take_bundle(
&self,
bundle_id: BundleId
) -> Option<Option<ArchetypeId>>
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§
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>
. 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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
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> DowncastSync for T
impl<T> DowncastSync for T
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
Self
using data from the given World
.