[][src]Trait wasmer_clif_fork_wasm::ModuleEnvironment

pub trait ModuleEnvironment<'data>: TargetEnvironment {
    fn declare_signature(&mut self, sig: Signature) -> WasmResult<()>;
fn declare_func_import(
        &mut self,
        sig_index: SignatureIndex,
        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, sig_index: SignatureIndex) -> 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: usize,
        elements: Box<[FuncIndex]>
    ) -> WasmResult<()>;
fn declare_passive_element(
        &mut self,
        index: PassiveElemIndex,
        elements: Box<[FuncIndex]>
    ) -> WasmResult<()>;
fn declare_passive_data(
        &mut self,
        data_index: PassiveDataIndex,
        data: &'data [u8]
    ) -> WasmResult<()>;
fn define_function_body(
        &mut self,
        module_translation_state: &ModuleTranslationState,
        body_bytes: &'data [u8],
        body_offset: usize
    ) -> WasmResult<()>;
fn declare_data_initialization(
        &mut self,
        memory_index: MemoryIndex,
        base: Option<GlobalIndex>,
        offset: usize,
        data: &'data [u8]
    ) -> WasmResult<()>; fn reserve_signatures(&mut self, _num: u32) -> WasmResult<()> { ... }
fn reserve_imports(&mut self, _num: u32) -> 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_globals(&mut self, _num: u32) -> WasmResult<()> { ... }
fn reserve_exports(&mut self, _num: u32) -> WasmResult<()> { ... }
fn finish_exports(&mut self) -> WasmResult<()> { ... }
fn reserve_table_elements(&mut self, _num: u32) -> WasmResult<()> { ... }
fn reserve_passive_data(&mut self, count: u32) -> WasmResult<()> { ... }
fn reserve_data_initializers(&mut self, _num: u32) -> WasmResult<()> { ... }
fn declare_func_name(
        &mut self,
        _func_index: FuncIndex,
        _name: &'data str
    ) -> WasmResult<()> { ... }
fn custom_section(
        &mut self,
        _name: &'data str,
        _data: &'data [u8]
    ) -> WasmResult<()> { ... } }

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

fn declare_signature(&mut self, sig: Signature) -> WasmResult<()>

Declares a function signature to the environment.

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

Declares a function import to the environment.

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

Declares a table import to the environment.

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

Declares a memory import to the environment.

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

Declares a global import to the environment.

fn declare_func_type(&mut self, sig_index: SignatureIndex) -> WasmResult<()>

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

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

Declares a table to the environment.

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

Declares a memory to the environment

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

Declares a global to the environment.

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

Declares a function export to the environment.

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

Declares a table export to the environment.

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

Declares a memory export to the environment.

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

Declares a global export to the environment.

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

Declares the optional start function.

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

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

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

Declare a passive element segment.

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

Declare a passive data segment.

fn define_function_body(
    &mut self,
    module_translation_state: &ModuleTranslationState,
    body_bytes: &'data [u8],
    body_offset: usize
) -> WasmResult<()>

Provides the contents of a function body.

Note there's no reserve_function_bodies function because the number of functions is already provided by reserve_func_types.

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

Fills a declared memory with bytes at module instantiation.

Loading content...

Provided methods

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

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

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.

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

Notifies the implementation that all imports have been declared.

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.

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.

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.

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.

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.

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

Notifies the implementation that all exports have been declared.

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.

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.

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.

fn declare_func_name(
    &mut self,
    _func_index: FuncIndex,
    _name: &'data str
) -> WasmResult<()>

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.

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

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

Loading content...

Implementors

impl<'data> ModuleEnvironment<'data> for DummyEnvironment[src]

Loading content...