cranelift_wasm::wasmparser::types

Trait Remap

source
pub trait Remap:
    Index<ComponentTypeId, Output = ComponentType, Output = ComponentDefinedType, Output = ComponentInstanceType, Output = ComponentFuncType>
    + Index<ComponentDefinedTypeId>
    + Index<ComponentInstanceTypeId>
    + Index<ComponentFuncTypeId> {
    // Required method
    fn push_ty<T>(&mut self, ty: T) -> <T as TypeData>::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 as TypeData>::Id,
        ty: T,
    ) -> bool
       where T: TypeData,
             <T as TypeData>::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 { ... }
}
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§

source

fn push_ty<T>(&mut self, ty: T) -> <T as TypeData>::Id
where T: TypeData,

Pushes a new anonymous type within this object, returning an identifier which can be used to refer to it.

Provided Methods§

source

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.

source

fn insert_if_any_changed<T>( &mut self, map: &mut Remapping, any_changed: bool, id: &mut <T as TypeData>::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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

fn remap_component_entity( &mut self, ty: &mut ComponentEntityType, map: &mut Remapping, ) -> bool

Same as remap_type_id, but works with ComponentEntityType.

source

fn remap_valtype( &mut self, ty: &mut ComponentValType, map: &mut Remapping, ) -> bool

Same as remap_type_id, but works with ComponentValType.

Object Safety§

This trait is not object safe.

Implementors§