Trait Compiler

Source
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§