[][src]Trait cranelift_wasm::ModuleEnvironment

pub trait ModuleEnvironment<'data>: TargetEnvironment {
    fn declare_signature(
        &mut self,
        wasm_func_type: WasmFuncType,
        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: 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: 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_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 { ... } }

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,
    wasm_func_type: WasmFuncType,
    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: ElemIndex,
    elements: Box<[FuncIndex]>
) -> WasmResult<()>

Declare a passive element segment.

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

Declare a passive data segment.

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

Provides the contents of a function body.

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_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.

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_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.

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.

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.

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

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

fn wasm_features(&self) -> WasmFeatures

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

Loading content...

Implementors

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

Loading content...