Skip to main content

ModuleEnvironment

Trait ModuleEnvironment 

Source
pub trait ModuleEnvironment<'data>: TypeConvert {
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, init: ConstExpr, ) -> 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<ModuleInternedTypeIndex> { ... } 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, init: ConstExpr) -> 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<ModuleInternedTypeIndex>

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.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§