Trait wasmer_compiler::Compiler
source · [−]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
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 compile_module<'data, 'module>(
&self,
target: &Target,
module: &'module CompileModuleInfo,
module_translation: &ModuleTranslationState,
function_body_inputs: PrimaryMap<LocalFunctionIndex, FunctionBodyData<'data>>
) -> Result<Compilation, CompileError>
Compiles a parsed module.
It returns the Compilation
or a CompileError
.
fn get_middlewares(&self) -> &[Arc<dyn ModuleMiddleware>]
fn get_middlewares(&self) -> &[Arc<dyn ModuleMiddleware>]
Get the middlewares for this compiler
Provided methods
fn validate_module<'data>(
&self,
features: &Features,
data: &'data [u8]
) -> Result<(), CompileError>
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.
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>>
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>>
Compiles a module into a native object file.
It returns the bytes as a &[u8]
or a CompileError
.