Struct bevy::ecs::entity::SceneEntityMapper
source · pub struct SceneEntityMapper<'m> { /* private fields */ }
Expand description
A wrapper for EntityHashMap<Entity>
, augmenting it with the ability to allocate new Entity
references in a destination
world. These newly allocated references are guaranteed to never point to any living entity in that world.
References are allocated by returning increasing generations starting from an internally initialized base
Entity
. After it is finished being used by MapEntities
implementations, this entity is despawned and the
requisite number of generations reserved.
Implementations§
source§impl<'m> SceneEntityMapper<'m>
impl<'m> SceneEntityMapper<'m>
sourcepub fn get_or_reserve(&mut self, entity: Entity) -> Entity
👎Deprecated since 0.13.0: please use EntityMapper::map_entity
instead
pub fn get_or_reserve(&mut self, entity: Entity) -> Entity
EntityMapper::map_entity
insteadReturns the corresponding mapped entity or reserves a new dead entity ID in the current world if it is absent.
sourcepub fn get_map(&'m self) -> &'m HashMap<Entity, Entity, EntityHash>
pub fn get_map(&'m self) -> &'m HashMap<Entity, Entity, EntityHash>
Gets a reference to the underlying EntityHashMap<Entity>
.
sourcepub fn get_map_mut(&'m mut self) -> &'m mut HashMap<Entity, Entity, EntityHash>
pub fn get_map_mut(&'m mut self) -> &'m mut HashMap<Entity, Entity, EntityHash>
Gets a mutable reference to the underlying EntityHashMap<Entity>
.
sourcepub fn world_scope<R>(
entity_map: &'m mut HashMap<Entity, Entity, EntityHash>,
world: &mut World,
f: impl FnOnce(&mut World, &mut SceneEntityMapper<'m>) -> R
) -> R
pub fn world_scope<R>( entity_map: &'m mut HashMap<Entity, Entity, EntityHash>, world: &mut World, f: impl FnOnce(&mut World, &mut SceneEntityMapper<'m>) -> R ) -> R
Creates an SceneEntityMapper
from a provided World
and EntityHashMap<Entity>
, then calls the
provided function with it. This allows one to allocate new entity references in this World
that are
guaranteed to never point at a living entity now or in the future. This functionality is useful for safely
mapping entity identifiers that point at entities outside the source world. The passed function, f
, is called
within the scope of this world. Its return value is then returned from world_scope
as the generic type
parameter R
.
Trait Implementations§
source§impl EntityMapper for SceneEntityMapper<'_>
impl EntityMapper for SceneEntityMapper<'_>
source§fn map_entity(&mut self, entity: Entity) -> Entity
fn map_entity(&mut self, entity: Entity) -> Entity
Returns the corresponding mapped entity or reserves a new dead entity ID in the current world if it is absent.
Auto Trait Implementations§
impl<'m> RefUnwindSafe for SceneEntityMapper<'m>
impl<'m> Send for SceneEntityMapper<'m>
impl<'m> Sync for SceneEntityMapper<'m>
impl<'m> Unpin for SceneEntityMapper<'m>
impl<'m> !UnwindSafe for SceneEntityMapper<'m>
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.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.