pub trait Compiler: Send {
    // Required method
    fn compile_module<'data, 'module>(
        &self,
        target: &Target,
        module: &'module CompileModuleInfo,
        function_body_inputs: PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>,
        tunables: &dyn Tunables,
        instrumentation: &AnalysisOutcome
    ) -> Result<Compilation, CompileError>;

    // Provided methods
    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,
        _unc_vm_metadata: &[u8]
    ) -> Option<Result<Vec<u8>, CompileError>> { ... }
}
Expand description

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

Required Methods§

source

fn compile_module<'data, 'module>( &self, target: &Target, module: &'module CompileModuleInfo, function_body_inputs: PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>, tunables: &dyn Tunables, instrumentation: &AnalysisOutcome ) -> Result<Compilation, CompileError>

Compiles a parsed module.

It returns the Compilation or a CompileError.

Provided Methods§

source

fn validate_module<'data>( &self, features: &Features, data: &'data [u8] ) -> Result<(), CompileError>

Validates a module.

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

source

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, _unc_vm_metadata: &[u8] ) -> Option<Result<Vec<u8>, CompileError>>

Compiles a module into a native object file.

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

Implementors§