Struct bevy::ecs::entity::EntityMapper
pub struct EntityMapper<'m> { /* private fields */ }
Expand description
A wrapper for EntityHashMap<Entity, 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§
§impl<'m> EntityMapper<'m>
impl<'m> EntityMapper<'m>
pub fn get_or_reserve(&mut self, entity: Entity) -> Entity
pub fn get_or_reserve(&mut self, entity: Entity) -> Entity
Returns the corresponding mapped entity or reserves a new dead entity ID if it is absent.
pub fn get_map(&'m self) -> &'m HashMap<Entity, Entity, EntityHash, Global>
pub fn get_map(&'m self) -> &'m HashMap<Entity, Entity, EntityHash, Global>
Gets a reference to the underlying EntityHashMap<Entity, Entity>
.
pub fn get_map_mut(
&'m mut self
) -> &'m mut HashMap<Entity, Entity, EntityHash, Global>
pub fn get_map_mut( &'m mut self ) -> &'m mut HashMap<Entity, Entity, EntityHash, Global>
Gets a mutable reference to the underlying EntityHashMap<Entity, Entity>
.
pub fn world_scope<R>(
entity_map: &'m mut HashMap<Entity, Entity, EntityHash, Global>,
world: &mut World,
f: impl FnOnce(&mut World, &mut EntityMapper<'m>) -> R
) -> R
pub fn world_scope<R>( entity_map: &'m mut HashMap<Entity, Entity, EntityHash, Global>, world: &mut World, f: impl FnOnce(&mut World, &mut EntityMapper<'m>) -> R ) -> R
Creates an EntityMapper
from a provided World
and EntityHashMap<Entity, 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
.
Auto Trait Implementations§
impl<'m> RefUnwindSafe for EntityMapper<'m>
impl<'m> Send for EntityMapper<'m>
impl<'m> Sync for EntityMapper<'m>
impl<'m> Unpin for EntityMapper<'m>
impl<'m> !UnwindSafe for EntityMapper<'m>
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere U: ShaderType, &'a T: for<'a> Into<U>,
§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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
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
.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§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.§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.