pub trait Compiler: Send + MemoryUsage {
    fn compile_module<'data, 'module>(
        &self,
        target: &Target,
        module: &'module CompileModuleInfo,
        module_translation: &ModuleTranslationState,
        function_body_inputs: PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>
    ) -> Result<Compilation, CompileError>;
fn get_middlewares(&self) -> &[Arc<dyn ModuleMiddleware>]; fn validate_module<'data>(
        &self,
        features: &Features,
        data: &'data [u8]
    ) -> Result<(), CompileError> { ... }
fn experimental_native_compile_module<'data, 'module>(
        &self,
        _target: &Target,
        _module: &'module CompileModuleInfo,
        _module_translation: &ModuleTranslationState,
        _function_body_inputs: &PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>,
        _symbol_registry: &dyn SymbolRegistry,
        _wasmer_metadata: &[u8]
    ) -> Option<Result<Vec<u8>, CompileError>> { ... } }
Expand description

An implementation of a Compiler from parsed WebAssembly module to Compiled native code.

Required methods

Compiles a parsed module.

It returns the Compilation or a CompileError.

Get the middlewares for this compiler

Provided methods

Validates a module.

It returns the a succesful Result in case is valid, CompileError in case is not.

Compiles a module into a native object file.

It returns the bytes as a &[u8] or a CompileError.

Implementors