pub trait ArtifactCreate: Send + Sync + Upcastable + MemoryUsage {
    fn module(&self) -> Arc<ModuleInfo>;
    fn module_ref(&self) -> &ModuleInfo;
    fn module_mut(&mut self) -> Option<&mut 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, Global>, SerializeError>;

    fn serialize_to_file(&self, path: &Path) -> Result<(), 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

Return a reference-counted pointer to the module

Return a pointer to a module.

Gets a mutable reference to the info.

Note: this will return None if the module is already instantiated.

Returns the features for this Artifact

Returns the CPU features for this Artifact

Returns the memory styles associated with this Artifact.

Returns the table plans associated with this Artifact.

Returns data initializers to pass to InstanceHandle::initialize

Serializes an artifact into bytes

Provided Methods

Serializes an artifact into a file path

Implementations

Try to downcast the artifact into a given type.

Try to downcast the artifact into a given type mutably.

Implementors