pub trait ArtifactCreate<'a>: Send + Sync + Upcastable {
    type OwnedDataInitializer: DataInitializerLike<'a> + 'a;
    type OwnedDataInitializerIterator: Iterator<Item = Self::OwnedDataInitializer>;

    // Required methods
    fn create_module_info(&'a self) -> Arc<ModuleInfo>;
    fn set_module_info_name(&'a mut self, name: String) -> bool;
    fn module_info(&'a self) -> &ModuleInfo;
    fn features(&'a self) -> &Features;
    fn cpu_features(&'a self) -> EnumSet<CpuFeature>;
    fn memory_styles(&'a self) -> &PrimaryMap<MemoryIndex, MemoryStyle>;
    fn table_styles(&'a self) -> &PrimaryMap<TableIndex, TableStyle>;
    fn data_initializers(&'a self) -> Self::OwnedDataInitializerIterator;
    fn serialize(&'a 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 Associated Types§

source

type OwnedDataInitializer: DataInitializerLike<'a> + 'a

Type of OwnedDataInitializer returned by the data_initializers method

source

type OwnedDataInitializerIterator: Iterator<Item = Self::OwnedDataInitializer>

Type of iterator returned by the data_initializers method

Required Methods§

source

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

Create a ModuleInfo for instantiation

source

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

Sets the ModuleInfo name

source

fn module_info(&'a self) -> &ModuleInfo

Returns the ModuleInfo for instantiation

source

fn features(&'a self) -> &Features

Returns the features for this Artifact

source

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

Returns the CPU features for this Artifact

source

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

Returns the memory styles associated with this Artifact.

source

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

Returns the table plans associated with this Artifact.

source

fn data_initializers(&'a self) -> Self::OwnedDataInitializerIterator

Returns data initializers to pass to VMInstance::initialize

source

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

Serializes an artifact into bytes

Implementations§

source§

impl<'a, O, I> dyn ArtifactCreate<'a, OwnedDataInitializer = O, OwnedDataInitializerIterator = I> + 'static

source

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

Try to downcast the artifact into a given type.

source

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

Try to downcast the artifact into a given type mutably.

Implementors§