Trait wasmer_engine::Artifact
source · [−]pub trait Artifact: Send + Sync + Upcastable + MemoryUsage {
Show 19 methods
fn module(&self) -> Arc<ModuleInfo>;
fn module_ref(&self) -> &ModuleInfo;
fn module_mut(&mut self) -> Option<&mut ModuleInfo>;
fn register_frame_info(&self);
fn features(&self) -> &Features;
fn cpu_features(&self) -> EnumSet<CpuFeature>;
fn memory_styles(&self) -> &PrimaryMap<MemoryIndex, MemoryStyle>;
fn table_styles(&self) -> &PrimaryMap<TableIndex, TableStyle>;
fn data_initializers(&self) -> &[OwnedDataInitializer];
fn finished_functions(
&self
) -> &BoxedSlice<LocalFunctionIndex, FunctionBodyPtr>;
fn finished_function_call_trampolines(
&self
) -> &BoxedSlice<SignatureIndex, VMTrampoline>;
fn finished_dynamic_function_trampolines(
&self
) -> &BoxedSlice<FunctionIndex, FunctionBodyPtr>;
fn signatures(&self) -> &BoxedSlice<SignatureIndex, VMSharedSignatureIndex>;
fn func_data_registry(&self) -> &FuncDataRegistry;
fn serialize(&self) -> Result<Vec<u8>, SerializeError>;
fn serialize_to_file(&self, path: &Path) -> Result<(), SerializeError> { ... }
fn preinstantiate(&self) -> Result<(), InstantiationError> { ... }
unsafe fn instantiate(
&self,
tunables: &dyn Tunables,
resolver: &dyn Resolver,
host_state: Box<dyn Any>
) -> Result<InstanceHandle, InstantiationError> { ... }
unsafe fn finish_instantiation(
&self,
trap_handler: &dyn TrapHandler,
handle: &InstanceHandle
) -> Result<(), InstantiationError> { ... }
}
Expand description
An Artifact
is the product that the Engine
implementation produce and use.
The Artifact
contains the compiled data for a given
module as well as extra information needed to run the
module at runtime, such as ModuleInfo
and Features
.
Required methods
fn module(&self) -> Arc<ModuleInfo>
fn module(&self) -> Arc<ModuleInfo>
Return a reference-counted pointer to the module
fn module_ref(&self) -> &ModuleInfo
fn module_ref(&self) -> &ModuleInfo
Return a pointer to a module.
fn module_mut(&mut self) -> Option<&mut ModuleInfo>
fn module_mut(&mut self) -> Option<&mut ModuleInfo>
Gets a mutable reference to the info.
Note: this will return None
if the module is already instantiated.
fn register_frame_info(&self)
fn register_frame_info(&self)
Register thie Artifact
stack frame information into the global scope.
This is required to ensure that any traps can be properly symbolicated.
fn cpu_features(&self) -> EnumSet<CpuFeature>
fn cpu_features(&self) -> EnumSet<CpuFeature>
Returns the CPU features for this Artifact
fn memory_styles(&self) -> &PrimaryMap<MemoryIndex, MemoryStyle>
fn memory_styles(&self) -> &PrimaryMap<MemoryIndex, MemoryStyle>
Returns the memory styles associated with this Artifact
.
fn table_styles(&self) -> &PrimaryMap<TableIndex, TableStyle>
fn table_styles(&self) -> &PrimaryMap<TableIndex, TableStyle>
Returns the table plans associated with this Artifact
.
fn data_initializers(&self) -> &[OwnedDataInitializer]
fn data_initializers(&self) -> &[OwnedDataInitializer]
Returns data initializers to pass to InstanceHandle::initialize
fn finished_functions(&self) -> &BoxedSlice<LocalFunctionIndex, FunctionBodyPtr>
fn finished_functions(&self) -> &BoxedSlice<LocalFunctionIndex, FunctionBodyPtr>
Returns the functions allocated in memory or this Artifact
ready to be run.
fn finished_function_call_trampolines(
&self
) -> &BoxedSlice<SignatureIndex, VMTrampoline>
fn finished_function_call_trampolines(
&self
) -> &BoxedSlice<SignatureIndex, VMTrampoline>
Returns the function call trampolines allocated in memory of this
Artifact
, ready to be run.
Returns the dynamic function trampolines allocated in memory
of this Artifact
, ready to be run.
fn signatures(&self) -> &BoxedSlice<SignatureIndex, VMSharedSignatureIndex>
fn signatures(&self) -> &BoxedSlice<SignatureIndex, VMSharedSignatureIndex>
Returns the associated VM signatures for this Artifact
.
fn func_data_registry(&self) -> &FuncDataRegistry
fn func_data_registry(&self) -> &FuncDataRegistry
Get the func data registry
Provided methods
fn serialize_to_file(&self, path: &Path) -> Result<(), SerializeError>
fn serialize_to_file(&self, path: &Path) -> Result<(), SerializeError>
Serializes an artifact into a file path
fn preinstantiate(&self) -> Result<(), InstantiationError>
fn preinstantiate(&self) -> Result<(), InstantiationError>
Do preinstantiation logic that is executed before instantiating
unsafe fn instantiate(
&self,
tunables: &dyn Tunables,
resolver: &dyn Resolver,
host_state: Box<dyn Any>
) -> Result<InstanceHandle, InstantiationError>
unsafe fn instantiate(
&self,
tunables: &dyn Tunables,
resolver: &dyn Resolver,
host_state: Box<dyn Any>
) -> Result<InstanceHandle, InstantiationError>
unsafe fn finish_instantiation(
&self,
trap_handler: &dyn TrapHandler,
handle: &InstanceHandle
) -> Result<(), InstantiationError>
unsafe fn finish_instantiation(
&self,
trap_handler: &dyn TrapHandler,
handle: &InstanceHandle
) -> Result<(), InstantiationError>
Finishes the instantiation of a just created InstanceHandle
.
Safety
Implementations
sourceimpl dyn Artifact + 'static
impl dyn Artifact + 'static
sourcepub fn downcast_ref<T: 'static>(&self) -> Option<&T>
pub fn downcast_ref<T: 'static>(&self) -> Option<&T>
Try to downcast the artifact into a given type.
sourcepub fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>
pub fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>
Try to downcast the artifact into a given type mutably.