Struct wasmtime_environ::Module 
source · pub struct Module {Show 20 fields
    pub name: Option<String>,
    pub initializers: Vec<Initializer>,
    pub exports: IndexMap<String, EntityIndex>,
    pub start_func: Option<FuncIndex>,
    pub table_initialization: TableInitialization,
    pub memory_initialization: MemoryInitialization,
    pub passive_elements: Vec<Box<[FuncIndex]>>,
    pub passive_elements_map: BTreeMap<ElemIndex, usize>,
    pub passive_data_map: BTreeMap<DataIndex, Range<u32>>,
    pub types: PrimaryMap<TypeIndex, ModuleType>,
    pub num_imported_funcs: usize,
    pub num_imported_tables: usize,
    pub num_imported_memories: usize,
    pub num_imported_globals: usize,
    pub num_escaped_funcs: usize,
    pub functions: PrimaryMap<FuncIndex, FunctionType>,
    pub table_plans: PrimaryMap<TableIndex, TablePlan>,
    pub memory_plans: PrimaryMap<MemoryIndex, MemoryPlan>,
    pub globals: PrimaryMap<GlobalIndex, Global>,
    pub global_initializers: PrimaryMap<DefinedGlobalIndex, GlobalInit>,
}Expand description
A translated WebAssembly module, excluding the function bodies and memory initializers.
Fields§
§name: Option<String>The name of this wasm module, often found in the wasm file.
initializers: Vec<Initializer>All import records, in the order they are declared in the module.
exports: IndexMap<String, EntityIndex>Exported entities.
start_func: Option<FuncIndex>The module “start” function, if present.
table_initialization: TableInitializationWebAssembly table initialization data, per table.
memory_initialization: MemoryInitializationWebAssembly linear memory initializer.
passive_elements: Vec<Box<[FuncIndex]>>WebAssembly passive elements.
passive_elements_map: BTreeMap<ElemIndex, usize>The map from passive element index (element segment index space) to index in passive_elements.
passive_data_map: BTreeMap<DataIndex, Range<u32>>The map from passive data index (data segment index space) to index in passive_data.
types: PrimaryMap<TypeIndex, ModuleType>Types declared in the wasm module.
num_imported_funcs: usizeNumber of imported or aliased functions in the module.
num_imported_tables: usizeNumber of imported or aliased tables in the module.
num_imported_memories: usizeNumber of imported or aliased memories in the module.
num_imported_globals: usizeNumber of imported or aliased globals in the module.
num_escaped_funcs: usizeNumber of functions that “escape” from this module may need to have a
VMFuncRef constructed for them.
This is also the number of functions in the functions array below with
an func_ref index (and is the maximum func_ref index).
functions: PrimaryMap<FuncIndex, FunctionType>Types of functions, imported and local.
table_plans: PrimaryMap<TableIndex, TablePlan>WebAssembly tables.
memory_plans: PrimaryMap<MemoryIndex, MemoryPlan>WebAssembly linear memory plans.
globals: PrimaryMap<GlobalIndex, Global>WebAssembly global variables.
global_initializers: PrimaryMap<DefinedGlobalIndex, GlobalInit>WebAssembly global initializers for locally-defined globals.
Implementations§
source§impl Module
 
impl Module
sourcepub fn func_index(&self, defined_func: DefinedFuncIndex) -> FuncIndex
 
pub fn func_index(&self, defined_func: DefinedFuncIndex) -> FuncIndex
Convert a DefinedFuncIndex into a FuncIndex.
sourcepub fn defined_func_index(&self, func: FuncIndex) -> Option<DefinedFuncIndex>
 
pub fn defined_func_index(&self, func: FuncIndex) -> Option<DefinedFuncIndex>
Convert a FuncIndex into a DefinedFuncIndex. Returns None if the
index is an imported function.
sourcepub fn is_imported_function(&self, index: FuncIndex) -> bool
 
pub fn is_imported_function(&self, index: FuncIndex) -> bool
Test whether the given function index is for an imported function.
sourcepub fn table_index(&self, defined_table: DefinedTableIndex) -> TableIndex
 
pub fn table_index(&self, defined_table: DefinedTableIndex) -> TableIndex
Convert a DefinedTableIndex into a TableIndex.
sourcepub fn defined_table_index(
    &self,
    table: TableIndex
) -> Option<DefinedTableIndex>
 
pub fn defined_table_index( &self, table: TableIndex ) -> Option<DefinedTableIndex>
Convert a TableIndex into a DefinedTableIndex. Returns None if the
index is an imported table.
sourcepub fn is_imported_table(&self, index: TableIndex) -> bool
 
pub fn is_imported_table(&self, index: TableIndex) -> bool
Test whether the given table index is for an imported table.
sourcepub fn memory_index(&self, defined_memory: DefinedMemoryIndex) -> MemoryIndex
 
pub fn memory_index(&self, defined_memory: DefinedMemoryIndex) -> MemoryIndex
Convert a DefinedMemoryIndex into a MemoryIndex.
sourcepub fn defined_memory_index(
    &self,
    memory: MemoryIndex
) -> Option<DefinedMemoryIndex>
 
pub fn defined_memory_index( &self, memory: MemoryIndex ) -> Option<DefinedMemoryIndex>
Convert a MemoryIndex into a DefinedMemoryIndex. Returns None if the
index is an imported memory.
sourcepub fn owned_memory_index(&self, memory: DefinedMemoryIndex) -> OwnedMemoryIndex
 
pub fn owned_memory_index(&self, memory: DefinedMemoryIndex) -> OwnedMemoryIndex
Convert a DefinedMemoryIndex into an OwnedMemoryIndex. Returns None
if the index is an imported memory.
sourcepub fn is_imported_memory(&self, index: MemoryIndex) -> bool
 
pub fn is_imported_memory(&self, index: MemoryIndex) -> bool
Test whether the given memory index is for an imported memory.
sourcepub fn global_index(&self, defined_global: DefinedGlobalIndex) -> GlobalIndex
 
pub fn global_index(&self, defined_global: DefinedGlobalIndex) -> GlobalIndex
Convert a DefinedGlobalIndex into a GlobalIndex.
sourcepub fn defined_global_index(
    &self,
    global: GlobalIndex
) -> Option<DefinedGlobalIndex>
 
pub fn defined_global_index( &self, global: GlobalIndex ) -> Option<DefinedGlobalIndex>
Convert a GlobalIndex into a DefinedGlobalIndex. Returns None if the
index is an imported global.
sourcepub fn is_imported_global(&self, index: GlobalIndex) -> bool
 
pub fn is_imported_global(&self, index: GlobalIndex) -> bool
Test whether the given global index is for an imported global.
sourcepub fn imports(&self) -> impl ExactSizeIterator<Item = (&str, &str, EntityType)>
 
pub fn imports(&self) -> impl ExactSizeIterator<Item = (&str, &str, EntityType)>
Returns an iterator of all the imports in this module, along with their module name, field name, and type that’s being imported.
sourcepub fn type_of(&self, index: EntityIndex) -> EntityType
 
pub fn type_of(&self, index: EntityIndex) -> EntityType
Returns the type of an item based on its index
sourcepub fn push_function(&mut self, signature: ModuleInternedTypeIndex) -> FuncIndex
 
pub fn push_function(&mut self, signature: ModuleInternedTypeIndex) -> FuncIndex
Appends a new function to this module with the given type information, used for functions that either don’t escape or aren’t certain whether they escape yet.
sourcepub fn push_escaped_function(
    &mut self,
    signature: ModuleInternedTypeIndex,
    func_ref: FuncRefIndex
) -> FuncIndex
 
pub fn push_escaped_function( &mut self, signature: ModuleInternedTypeIndex, func_ref: FuncRefIndex ) -> FuncIndex
Appends a new function to this module with the given type information.