Struct wasmtime_environ::Module
source · [−]pub struct Module {Show 19 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>,
}
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: TableInitialization
WebAssembly table initialization data, per table.
memory_initialization: MemoryInitialization
WebAssembly 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: usize
Number of imported or aliased functions in the module.
num_imported_tables: usize
Number of imported or aliased tables in the module.
num_imported_memories: usize
Number of imported or aliased memories in the module.
num_imported_globals: usize
Number of imported or aliased globals in the module.
num_escaped_funcs: usize
Number of functions that “escape” from this module may need to have a
VMCallerCheckedAnyfunc
constructed for them.
This is also the number of functions in the functions
array below with
an anyfunc
index (and is the maximum anyfunc 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.
Implementations
sourceimpl 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: SignatureIndex) -> FuncIndex
pub fn push_function(&mut self, signature: SignatureIndex) -> 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: SignatureIndex,
anyfunc: AnyfuncIndex
) -> FuncIndex
pub fn push_escaped_function(
&mut self,
signature: SignatureIndex,
anyfunc: AnyfuncIndex
) -> FuncIndex
Appends a new function to this module with the given type information.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Module
impl<'de> Deserialize<'de> for Module
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Module
impl Send for Module
impl Sync for Module
impl Unpin for Module
impl UnwindSafe for Module
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more