[][src]Struct cranelift_wasm::FuncTranslator

pub struct FuncTranslator { /* fields omitted */ }

WebAssembly to Cranelift IR function translator.

A FuncTranslator is used to translate a binary WebAssembly function into Cranelift IR guided by a FuncEnvironment object. A single translator instance can be reused to translate multiple functions which will reduce heap allocation traffic.

Methods

impl FuncTranslator[src]

pub fn new() -> Self[src]

Create a new translator.

pub fn translate<FE: FuncEnvironment + ?Sized>(
    &mut self,
    module_translation_state: &ModuleTranslationState,
    code: &[u8],
    code_offset: usize,
    func: &mut Function,
    environ: &mut FE
) -> WasmResult<()>
[src]

Translate a binary WebAssembly function.

The code slice contains the binary WebAssembly function code as it appears in the code section of a WebAssembly module, not including the initial size of the function code. The slice is expected to contain two parts:

  • The declaration of locals, and
  • The function body as an expression.

See the WebAssembly specification.

The Cranelift IR function func should be completely empty except for the func.signature and func.name fields. The signature may contain special-purpose arguments which are not regarded as WebAssembly local variables. Any signature arguments marked as ArgumentPurpose::Normal are made accessible as WebAssembly local variables.

pub fn translate_from_reader<FE: FuncEnvironment + ?Sized>(
    &mut self,
    module_translation_state: &ModuleTranslationState,
    reader: BinaryReader,
    func: &mut Function,
    environ: &mut FE
) -> WasmResult<()>
[src]

Translate a binary WebAssembly function from a BinaryReader.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.