pub trait Remapwhere
Self: Index<ComponentTypeId, Output = ComponentType> + Index<ComponentDefinedTypeId, Output = ComponentDefinedType> + Index<ComponentInstanceTypeId, Output = ComponentInstanceType> + Index<ComponentFuncTypeId, Output = ComponentFuncType>,{
// Required method
fn push_ty<T>(&mut self, ty: T) -> T::Id
where T: TypeData;
// Provided methods
fn map_map(
tmp: &mut IndexMap<ResourceId, Vec<usize>>,
any_changed: &mut bool,
map: &Remapping,
) { ... }
fn insert_if_any_changed<T>(
&mut self,
map: &mut Remapping,
any_changed: bool,
id: &mut T::Id,
ty: T,
) -> bool
where T: TypeData,
T::Id: Into<ComponentAnyTypeId> { ... }
fn remap_component_any_type_id(
&mut self,
id: &mut ComponentAnyTypeId,
map: &mut Remapping,
) -> bool { ... }
fn remap_resource_id(
&mut self,
id: &mut AliasableResourceId,
map: &Remapping,
) -> bool { ... }
fn remap_component_type_id(
&mut self,
id: &mut ComponentTypeId,
map: &mut Remapping,
) -> bool { ... }
fn remap_component_defined_type_id(
&mut self,
id: &mut ComponentDefinedTypeId,
map: &mut Remapping,
) -> bool { ... }
fn remap_component_instance_type_id(
&mut self,
id: &mut ComponentInstanceTypeId,
map: &mut Remapping,
) -> bool { ... }
fn remap_component_func_type_id(
&mut self,
id: &mut ComponentFuncTypeId,
map: &mut Remapping,
) -> bool { ... }
fn remap_component_entity(
&mut self,
ty: &mut ComponentEntityType,
map: &mut Remapping,
) -> bool { ... }
fn remap_valtype(
&mut self,
ty: &mut ComponentValType,
map: &mut Remapping,
) -> bool { ... }
}
validate
and component-model
only.Expand description
A helper trait to provide the functionality necessary to resources within a type.
This currently exists to abstract over TypeAlloc
and SubtypeArena
which
both need to perform remapping operations.
Required Methods§
Provided Methods§
Sourcefn map_map(
tmp: &mut IndexMap<ResourceId, Vec<usize>>,
any_changed: &mut bool,
map: &Remapping,
)
fn map_map( tmp: &mut IndexMap<ResourceId, Vec<usize>>, any_changed: &mut bool, map: &Remapping, )
Apply map
to the keys of tmp
, setting *any_changed = true
if any
keys were remapped.
Sourcefn insert_if_any_changed<T>(
&mut self,
map: &mut Remapping,
any_changed: bool,
id: &mut T::Id,
ty: T,
) -> bool
fn insert_if_any_changed<T>( &mut self, map: &mut Remapping, any_changed: bool, id: &mut T::Id, ty: T, ) -> bool
If any_changed
is true, push ty
, update map
to point id
to the
new type ID, set id
equal to the new type ID, and return true
.
Otherwise, update map
to point id
to itself and return false
.
Sourcefn remap_component_any_type_id(
&mut self,
id: &mut ComponentAnyTypeId,
map: &mut Remapping,
) -> bool
fn remap_component_any_type_id( &mut self, id: &mut ComponentAnyTypeId, map: &mut Remapping, ) -> bool
Recursively search for any resource types reachable from id
, updating
it and map
if any are found and remapped, returning true
iff at last
one is remapped.
Sourcefn remap_resource_id(
&mut self,
id: &mut AliasableResourceId,
map: &Remapping,
) -> bool
fn remap_resource_id( &mut self, id: &mut AliasableResourceId, map: &Remapping, ) -> bool
If map
indicates id
should be remapped, update it and return true
.
Otherwise, do nothing and return false
.
Sourcefn remap_component_type_id(
&mut self,
id: &mut ComponentTypeId,
map: &mut Remapping,
) -> bool
fn remap_component_type_id( &mut self, id: &mut ComponentTypeId, map: &mut Remapping, ) -> bool
Recursively search for any resource types reachable from id
, updating
it and map
if any are found and remapped, returning true
iff at last
one is remapped.
Sourcefn remap_component_defined_type_id(
&mut self,
id: &mut ComponentDefinedTypeId,
map: &mut Remapping,
) -> bool
fn remap_component_defined_type_id( &mut self, id: &mut ComponentDefinedTypeId, map: &mut Remapping, ) -> bool
Recursively search for any resource types reachable from id
, updating
it and map
if any are found and remapped, returning true
iff at last
one is remapped.
Sourcefn remap_component_instance_type_id(
&mut self,
id: &mut ComponentInstanceTypeId,
map: &mut Remapping,
) -> bool
fn remap_component_instance_type_id( &mut self, id: &mut ComponentInstanceTypeId, map: &mut Remapping, ) -> bool
Recursively search for any resource types reachable from id
, updating
it and map
if any are found and remapped, returning true
iff at last
one is remapped.
Sourcefn remap_component_func_type_id(
&mut self,
id: &mut ComponentFuncTypeId,
map: &mut Remapping,
) -> bool
fn remap_component_func_type_id( &mut self, id: &mut ComponentFuncTypeId, map: &mut Remapping, ) -> bool
Recursively search for any resource types reachable from id
, updating
it and map
if any are found and remapped, returning true
iff at last
one is remapped.
Sourcefn remap_component_entity(
&mut self,
ty: &mut ComponentEntityType,
map: &mut Remapping,
) -> bool
fn remap_component_entity( &mut self, ty: &mut ComponentEntityType, map: &mut Remapping, ) -> bool
Same as remap_type_id
, but works with ComponentEntityType
.
Sourcefn remap_valtype(
&mut self,
ty: &mut ComponentValType,
map: &mut Remapping,
) -> bool
fn remap_valtype( &mut self, ty: &mut ComponentValType, map: &mut Remapping, ) -> bool
Same as remap_type_id
, but works with ComponentValType
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.