pub trait ModuleEnvironment<'data> {
Show 43 methods // Required methods fn declare_type_func( &mut self, wasm_func_type: WasmFuncType ) -> WasmResult<()>; fn declare_func_import( &mut self, index: TypeIndex, module: &'data str, field: &'data str ) -> WasmResult<()>; fn declare_table_import( &mut self, table: Table, module: &'data str, field: &'data str ) -> WasmResult<()>; fn declare_memory_import( &mut self, memory: Memory, module: &'data str, field: &'data str ) -> WasmResult<()>; fn declare_global_import( &mut self, global: Global, module: &'data str, field: &'data str ) -> WasmResult<()>; fn declare_func_type(&mut self, index: TypeIndex) -> WasmResult<()>; fn declare_table(&mut self, table: Table) -> WasmResult<()>; fn declare_memory(&mut self, memory: Memory) -> WasmResult<()>; fn declare_global(&mut self, global: Global) -> WasmResult<()>; fn declare_func_export( &mut self, func_index: FuncIndex, name: &'data str ) -> WasmResult<()>; fn declare_table_export( &mut self, table_index: TableIndex, name: &'data str ) -> WasmResult<()>; fn declare_memory_export( &mut self, memory_index: MemoryIndex, name: &'data str ) -> WasmResult<()>; fn declare_global_export( &mut self, global_index: GlobalIndex, name: &'data str ) -> WasmResult<()>; fn declare_start_func(&mut self, index: FuncIndex) -> WasmResult<()>; fn declare_table_elements( &mut self, table_index: TableIndex, base: Option<GlobalIndex>, offset: u32, elements: Box<[FuncIndex]> ) -> WasmResult<()>; fn declare_passive_element( &mut self, index: ElemIndex, elements: Box<[FuncIndex]> ) -> WasmResult<()>; fn declare_passive_data( &mut self, data_index: DataIndex, data: &'data [u8] ) -> WasmResult<()>; fn define_function_body( &mut self, validator: FuncValidator<ValidatorResources>, body: FunctionBody<'data> ) -> WasmResult<()>; fn declare_data_initialization( &mut self, memory_index: MemoryIndex, base: Option<GlobalIndex>, offset: u64, data: &'data [u8] ) -> WasmResult<()>; // Provided methods fn reserve_types(&mut self, _num: u32) -> WasmResult<()> { ... } fn type_to_signature(&self, index: TypeIndex) -> WasmResult<SignatureIndex> { ... } fn reserve_imports(&mut self, _num: u32) -> WasmResult<()> { ... } fn declare_tag_import( &mut self, tag: Tag, module: &'data str, field: &'data str ) -> WasmResult<()> { ... } fn finish_imports(&mut self) -> WasmResult<()> { ... } fn reserve_func_types(&mut self, _num: u32) -> WasmResult<()> { ... } fn reserve_tables(&mut self, _num: u32) -> WasmResult<()> { ... } fn reserve_memories(&mut self, _num: u32) -> WasmResult<()> { ... } fn reserve_tags(&mut self, _num: u32) -> WasmResult<()> { ... } fn declare_tag(&mut self, tag: Tag) -> WasmResult<()> { ... } fn reserve_globals(&mut self, _num: u32) -> WasmResult<()> { ... } fn reserve_exports(&mut self, _num: u32) -> WasmResult<()> { ... } fn declare_tag_export( &mut self, tag_index: TagIndex, name: &'data str ) -> WasmResult<()> { ... } fn finish_exports(&mut self) -> WasmResult<()> { ... } fn reserve_table_elements(&mut self, _num: u32) -> WasmResult<()> { ... } fn declare_elements(&mut self, elements: Box<[FuncIndex]>) -> WasmResult<()> { ... } fn reserve_passive_data(&mut self, count: u32) -> WasmResult<()> { ... } fn reserve_function_bodies(&mut self, bodies: u32, code_section_offset: u64) { ... } fn reserve_data_initializers(&mut self, _num: u32) -> WasmResult<()> { ... } fn declare_module_name(&mut self, _name: &'data str) { ... } fn declare_func_name(&mut self, _func_index: FuncIndex, _name: &'data str) { ... } fn declare_local_name( &mut self, _func_index: FuncIndex, _local_index: u32, _name: &'data str ) { ... } fn custom_section( &mut self, _name: &'data str, _data: &'data [u8] ) -> WasmResult<()> { ... } fn wasm_features(&self) -> WasmFeatures { ... }
}
Expand description

An object satisfying the ModuleEnvironment trait can be passed as argument to the translate_module function. These methods should not be called by the user, they are only for cranelift-wasm internal use.

Required Methods§

source

fn declare_type_func(&mut self, wasm_func_type: WasmFuncType) -> WasmResult<()>

Declares a function signature to the environment.

source

fn declare_func_import( &mut self, index: TypeIndex, module: &'data str, field: &'data str ) -> WasmResult<()>

Declares a function import to the environment.

source

fn declare_table_import( &mut self, table: Table, module: &'data str, field: &'data str ) -> WasmResult<()>

Declares a table import to the environment.

source

fn declare_memory_import( &mut self, memory: Memory, module: &'data str, field: &'data str ) -> WasmResult<()>

Declares a memory import to the environment.

source

fn declare_global_import( &mut self, global: Global, module: &'data str, field: &'data str ) -> WasmResult<()>

Declares a global import to the environment.

source

fn declare_func_type(&mut self, index: TypeIndex) -> WasmResult<()>

Declares the type (signature) of a local function in the module.

source

fn declare_table(&mut self, table: Table) -> WasmResult<()>

Declares a table to the environment.

source

fn declare_memory(&mut self, memory: Memory) -> WasmResult<()>

Declares a memory to the environment

source

fn declare_global(&mut self, global: Global) -> WasmResult<()>

Declares a global to the environment.

source

fn declare_func_export( &mut self, func_index: FuncIndex, name: &'data str ) -> WasmResult<()>

Declares a function export to the environment.

source

fn declare_table_export( &mut self, table_index: TableIndex, name: &'data str ) -> WasmResult<()>

Declares a table export to the environment.

source

fn declare_memory_export( &mut self, memory_index: MemoryIndex, name: &'data str ) -> WasmResult<()>

Declares a memory export to the environment.

source

fn declare_global_export( &mut self, global_index: GlobalIndex, name: &'data str ) -> WasmResult<()>

Declares a global export to the environment.

source

fn declare_start_func(&mut self, index: FuncIndex) -> WasmResult<()>

Declares the optional start function.

source

fn declare_table_elements( &mut self, table_index: TableIndex, base: Option<GlobalIndex>, offset: u32, elements: Box<[FuncIndex]> ) -> WasmResult<()>

Fills a declared table with references to functions in the module.

source

fn declare_passive_element( &mut self, index: ElemIndex, elements: Box<[FuncIndex]> ) -> WasmResult<()>

Declare a passive element segment.

source

fn declare_passive_data( &mut self, data_index: DataIndex, data: &'data [u8] ) -> WasmResult<()>

Declare a passive data segment.

source

fn define_function_body( &mut self, validator: FuncValidator<ValidatorResources>, body: FunctionBody<'data> ) -> WasmResult<()>

Provides the contents of a function body.

source

fn declare_data_initialization( &mut self, memory_index: MemoryIndex, base: Option<GlobalIndex>, offset: u64, data: &'data [u8] ) -> WasmResult<()>

Fills a declared memory with bytes at module instantiation.

Provided Methods§

source

fn reserve_types(&mut self, _num: u32) -> WasmResult<()>

Provides the number of types up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn type_to_signature(&self, index: TypeIndex) -> WasmResult<SignatureIndex>

Translates a type index to its signature index, only called for type indices which point to functions.

source

fn reserve_imports(&mut self, _num: u32) -> WasmResult<()>

Provides the number of imports up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn declare_tag_import( &mut self, tag: Tag, module: &'data str, field: &'data str ) -> WasmResult<()>

Declares an tag import to the environment.

source

fn finish_imports(&mut self) -> WasmResult<()>

Notifies the implementation that all imports have been declared.

source

fn reserve_func_types(&mut self, _num: u32) -> WasmResult<()>

Provides the number of defined functions up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn reserve_tables(&mut self, _num: u32) -> WasmResult<()>

Provides the number of defined tables up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn reserve_memories(&mut self, _num: u32) -> WasmResult<()>

Provides the number of defined memories up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn reserve_tags(&mut self, _num: u32) -> WasmResult<()>

Provides the number of defined tags up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn declare_tag(&mut self, tag: Tag) -> WasmResult<()>

Declares an tag to the environment

source

fn reserve_globals(&mut self, _num: u32) -> WasmResult<()>

Provides the number of defined globals up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn reserve_exports(&mut self, _num: u32) -> WasmResult<()>

Provides the number of exports up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn declare_tag_export( &mut self, tag_index: TagIndex, name: &'data str ) -> WasmResult<()>

Declares an tag export to the environment.

source

fn finish_exports(&mut self) -> WasmResult<()>

Notifies the implementation that all exports have been declared.

source

fn reserve_table_elements(&mut self, _num: u32) -> WasmResult<()>

Provides the number of element initializers up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn declare_elements(&mut self, elements: Box<[FuncIndex]>) -> WasmResult<()>

Indicates that a declarative element segment was seen in the wasm module.

source

fn reserve_passive_data(&mut self, count: u32) -> WasmResult<()>

Provides the number of passive data segments up front.

By default this does nothing, but implementations may use this to pre-allocate memory if desired.

source

fn reserve_function_bodies(&mut self, bodies: u32, code_section_offset: u64)

Indicates how many functions the code section reports and the byte offset of where the code sections starts.

source

fn reserve_data_initializers(&mut self, _num: u32) -> WasmResult<()>

Provides the number of data initializers up front. By default this does nothing, but implementations can use this to preallocate memory if desired.

source

fn declare_module_name(&mut self, _name: &'data str)

Declares the name of a module to the environment.

By default this does nothing, but implementations can use this to read the module name subsection of the custom name section if desired.

source

fn declare_func_name(&mut self, _func_index: FuncIndex, _name: &'data str)

Declares the name of a function to the environment.

By default this does nothing, but implementations can use this to read the function name subsection of the custom name section if desired.

source

fn declare_local_name( &mut self, _func_index: FuncIndex, _local_index: u32, _name: &'data str )

Declares the name of a function’s local to the environment.

By default this does nothing, but implementations can use this to read the local name subsection of the custom name section if desired.

source

fn custom_section( &mut self, _name: &'data str, _data: &'data [u8] ) -> WasmResult<()>

Indicates that a custom section has been found in the wasm file

source

fn wasm_features(&self) -> WasmFeatures

Returns the list of enabled wasm features this translation will be using.

Implementors§