pub trait ModuleEnvironment<'data> {
Show 43 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<()>; 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

Declares a function signature to the environment.

Declares a function import to the environment.

Declares a table import to the environment.

Declares a memory import to the environment.

Declares a global import to the environment.

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

Declares a table to the environment.

Declares a memory to the environment

Declares a global to the environment.

Declares a function export to the environment.

Declares a table export to the environment.

Declares a memory export to the environment.

Declares a global export to the environment.

Declares the optional start function.

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

Declare a passive element segment.

Declare a passive data segment.

Provides the contents of a function body.

Fills a declared memory with bytes at module instantiation.

Provided methods

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

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

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

Declares an tag import to the environment.

Notifies the implementation that all imports have been declared.

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

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

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

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

Declares an tag to the environment

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

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

Declares an tag export to the environment.

Notifies the implementation that all exports have been declared.

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

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

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.

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

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

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.

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.

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.

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

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

Implementors