pub trait EntityMapper {
// Required methods
fn get_mapped(&mut self, source: Entity) -> Entity;
fn set_mapped(&mut self, source: Entity, target: Entity);
}
Expand description
An implementor of this trait knows how to map an Entity
into another Entity
.
Usually this is done by using an EntityHashMap<Entity>
to map source entities
(mapper inputs) to the current world’s entities (mapper outputs).
More generally, this can be used to map Entity
references between any two Worlds
.
This is used by MapEntities
implementors.
§Example
pub struct SimpleEntityMapper {
map: EntityHashMap<Entity>,
}
// Example implementation of EntityMapper where we map an entity to another entity if it exists
// in the underlying `EntityHashMap`, otherwise we just return the original entity.
impl EntityMapper for SimpleEntityMapper {
fn get_mapped(&mut self, entity: Entity) -> Entity {
self.map.get(&entity).copied().unwrap_or(entity)
}
fn set_mapped(&mut self, source: Entity, target: Entity) {
self.map.insert(source, target);
}
}
Required Methods§
Sourcefn get_mapped(&mut self, source: Entity) -> Entity
fn get_mapped(&mut self, source: Entity) -> Entity
Returns the “target” entity that maps to the given source
.
Sourcefn set_mapped(&mut self, source: Entity, target: Entity)
fn set_mapped(&mut self, source: Entity, target: Entity)
Maps the target
entity to the given source
. For some implementations this might not actually determine the result
of EntityMapper::get_mapped
.
Trait Implementations§
Source§impl EntityMapper for &mut dyn EntityMapper
impl EntityMapper for &mut dyn EntityMapper
Source§fn get_mapped(&mut self, source: Entity) -> Entity
fn get_mapped(&mut self, source: Entity) -> Entity
Returns the “target” entity that maps to the given
source
.Source§fn set_mapped(&mut self, source: Entity, target: Entity)
fn set_mapped(&mut self, source: Entity, target: Entity)
Maps the
target
entity to the given source
. For some implementations this might not actually determine the result
of EntityMapper::get_mapped
.