pub trait ArtifactCreate: Send + Sync + Upcastable {
    // Required methods
    fn create_module_info(&self) -> Arc<ModuleInfo>;
    fn set_module_info_name(&mut self, name: String) -> bool;
    fn module_info(&self) -> &ModuleInfo;
    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 serialize(&self) -> Result<Vec<u8>, SerializeError>;
}
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§

source

fn create_module_info(&self) -> Arc<ModuleInfo>

Create a ModuleInfo for instantiation

source

fn set_module_info_name(&mut self, name: String) -> bool

Sets the ModuleInfo name

source

fn module_info(&self) -> &ModuleInfo

Returns the ModuleInfo for instantiation

source

fn features(&self) -> &Features

Returns the features for this Artifact

source

fn cpu_features(&self) -> EnumSet<CpuFeature>

Returns the CPU features for this Artifact

source

fn memory_styles(&self) -> &PrimaryMap<MemoryIndex, MemoryStyle>

Returns the memory styles associated with this Artifact.

source

fn table_styles(&self) -> &PrimaryMap<TableIndex, TableStyle>

Returns the table plans associated with this Artifact.

source

fn data_initializers(&self) -> &[OwnedDataInitializer]

Returns data initializers to pass to VMInstance::initialize

source

fn serialize(&self) -> Result<Vec<u8>, SerializeError>

Serializes an artifact into bytes

Implementations§

source§

impl dyn ArtifactCreate + 'static

source

pub fn downcast_ref<T: 'static>(&self) -> Option<&T>

Try to downcast the artifact into a given type.

source

pub fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>

Try to downcast the artifact into a given type mutably.

Implementors§