pub trait Engine {
// Required methods
fn target(&self) -> &Target;
fn register_signature(
&self,
func_type: FunctionTypeRef<'_>,
) -> VMSharedSignatureIndex;
fn register_function_metadata(
&self,
func_data: VMCallerCheckedAnyfunc,
) -> VMFuncRef;
fn lookup_signature(
&self,
sig: VMSharedSignatureIndex,
) -> Option<FunctionType>;
fn validate(&self, binary: &[u8]) -> Result<(), CompileError>;
fn compile(
&self,
binary: &[u8],
tunables: &dyn Tunables,
) -> Result<Box<dyn Executable>, CompileError>;
fn load(
&self,
executable: &dyn Executable,
) -> Result<Arc<dyn Artifact>, CompileError>;
fn id(&self) -> &EngineId;
fn cloned(&self) -> Arc<dyn Engine + Send + Sync>;
}
Expand description
A unimplemented Wasmer Engine
.
This trait is used by implementors to implement custom engines such as: Universal or Native.
The product that an Engine
produces and consumes is the Artifact
.
Required Methods§
Sourcefn register_signature(
&self,
func_type: FunctionTypeRef<'_>,
) -> VMSharedSignatureIndex
fn register_signature( &self, func_type: FunctionTypeRef<'_>, ) -> VMSharedSignatureIndex
Register a signature
Sourcefn register_function_metadata(
&self,
func_data: VMCallerCheckedAnyfunc,
) -> VMFuncRef
fn register_function_metadata( &self, func_data: VMCallerCheckedAnyfunc, ) -> VMFuncRef
Register a function’s data.
Sourcefn lookup_signature(&self, sig: VMSharedSignatureIndex) -> Option<FunctionType>
fn lookup_signature(&self, sig: VMSharedSignatureIndex) -> Option<FunctionType>
Lookup a signature
Sourcefn compile(
&self,
binary: &[u8],
tunables: &dyn Tunables,
) -> Result<Box<dyn Executable>, CompileError>
fn compile( &self, binary: &[u8], tunables: &dyn Tunables, ) -> Result<Box<dyn Executable>, CompileError>
Compile a WebAssembly binary
Sourcefn load(
&self,
executable: &dyn Executable,
) -> Result<Arc<dyn Artifact>, CompileError>
fn load( &self, executable: &dyn Executable, ) -> Result<Arc<dyn Artifact>, CompileError>
Load a compiled executable with this engine.