pub struct SerializableModule {
pub compilation: SerializableCompilation,
pub compile_info: CompileModuleInfo,
pub data_initializers: Box<[OwnedDataInitializer]>,
pub cpu_features: u64,
}
Expand description
Serializable struct that is able to serialize from and to a ArtifactInfo
.
Fields§
§compilation: SerializableCompilation
The main serializable compilation object
compile_info: CompileModuleInfo
Compilation informations
data_initializers: Box<[OwnedDataInitializer]>
Datas initializers
cpu_features: u64
CPU Feature flags for this compilation
Implementations§
source§impl SerializableModule
impl SerializableModule
sourcepub fn serialize(&self) -> Result<Vec<u8>, SerializeError>
pub fn serialize(&self) -> Result<Vec<u8>, SerializeError>
Serialize a Module into bytes The bytes will have the following format: RKYV serialization (any length) + POS (8 bytes)
sourcepub unsafe fn deserialize_unchecked(
metadata_slice: &[u8],
) -> Result<Self, DeserializeError>
pub unsafe fn deserialize_unchecked( metadata_slice: &[u8], ) -> Result<Self, DeserializeError>
Deserialize a Module from a slice. The slice must have the following format: RKYV serialization (any length) + POS (8 bytes)
§Safety
This method is unsafe since it deserializes data directly
from memory.
Right now we are not doing any extra work for validation, but
rkyv
has an option to do bytecheck on the serialized data before
serializing (via rkyv::check_archived_value
).
sourcepub unsafe fn deserialize(
metadata_slice: &[u8],
) -> Result<Self, DeserializeError>
pub unsafe fn deserialize( metadata_slice: &[u8], ) -> Result<Self, DeserializeError>
Deserialize a Module from a slice. The slice must have the following format: RKYV serialization (any length) + POS (8 bytes)
Unlike Self::deserialize
, this function will validate the data.
§Safety
Unsafe because it loads executable code into memory. The loaded bytes must be trusted.
sourcepub unsafe fn archive_from_slice(
metadata_slice: &[u8],
) -> Result<&ArchivedSerializableModule, DeserializeError>
pub unsafe fn archive_from_slice( metadata_slice: &[u8], ) -> Result<&ArchivedSerializableModule, DeserializeError>
§Safety
This method is unsafe.
Please check SerializableModule::deserialize
for more details.
sourcepub fn archive_from_slice_checked(
metadata_slice: &[u8],
) -> Result<&ArchivedSerializableModule, DeserializeError>
pub fn archive_from_slice_checked( metadata_slice: &[u8], ) -> Result<&ArchivedSerializableModule, DeserializeError>
Deserialize an archived module.
In contrast to Self::deserialize
, this method performs validation
and is not unsafe.
sourcepub fn deserialize_from_archive(
archived: &ArchivedSerializableModule,
) -> Result<Self, DeserializeError>
pub fn deserialize_from_archive( archived: &ArchivedSerializableModule, ) -> Result<Self, DeserializeError>
Deserialize a compilation module from an archive
sourcepub fn create_module_info(&self) -> ModuleInfo
pub fn create_module_info(&self) -> ModuleInfo
Create a ModuleInfo
for instantiation
sourcepub fn module_info(&self) -> &ModuleInfo
pub fn module_info(&self) -> &ModuleInfo
Returns the ModuleInfo
for instantiation
sourcepub fn cpu_features(&self) -> EnumSet<CpuFeature>
pub fn cpu_features(&self) -> EnumSet<CpuFeature>
Returns the CPU features for this Artifact
sourcepub fn data_initializers(&self) -> &[OwnedDataInitializer]
pub fn data_initializers(&self) -> &[OwnedDataInitializer]
Returns data initializers to pass to VMInstance::initialize
sourcepub fn memory_styles(&self) -> &PrimaryMap<MemoryIndex, MemoryStyle>
pub fn memory_styles(&self) -> &PrimaryMap<MemoryIndex, MemoryStyle>
Returns the memory styles associated with this Artifact
.
sourcepub fn table_styles(&self) -> &PrimaryMap<TableIndex, TableStyle>
pub fn table_styles(&self) -> &PrimaryMap<TableIndex, TableStyle>
Returns the table plans associated with this Artifact
.
Trait Implementations§
source§impl Archive for SerializableModulewhere
SerializableCompilation: Archive,
CompileModuleInfo: Archive,
Box<[OwnedDataInitializer]>: Archive,
u64: Archive,
impl Archive for SerializableModulewhere
SerializableCompilation: Archive,
CompileModuleInfo: Archive,
Box<[OwnedDataInitializer]>: Archive,
u64: Archive,
source§impl<__D: Fallible + ?Sized> Deserialize<SerializableModule, __D> for Archived<SerializableModule>where
SerializableCompilation: Archive,
Archived<SerializableCompilation>: Deserialize<SerializableCompilation, __D>,
CompileModuleInfo: Archive,
Archived<CompileModuleInfo>: Deserialize<CompileModuleInfo, __D>,
Box<[OwnedDataInitializer]>: Archive,
Archived<Box<[OwnedDataInitializer]>>: Deserialize<Box<[OwnedDataInitializer]>, __D>,
u64: Archive,
Archived<u64>: Deserialize<u64, __D>,
impl<__D: Fallible + ?Sized> Deserialize<SerializableModule, __D> for Archived<SerializableModule>where
SerializableCompilation: Archive,
Archived<SerializableCompilation>: Deserialize<SerializableCompilation, __D>,
CompileModuleInfo: Archive,
Archived<CompileModuleInfo>: Deserialize<CompileModuleInfo, __D>,
Box<[OwnedDataInitializer]>: Archive,
Archived<Box<[OwnedDataInitializer]>>: Deserialize<Box<[OwnedDataInitializer]>, __D>,
u64: Archive,
Archived<u64>: Deserialize<u64, __D>,
source§fn deserialize(
&self,
deserializer: &mut __D,
) -> Result<SerializableModule, __D::Error>
fn deserialize( &self, deserializer: &mut __D, ) -> Result<SerializableModule, __D::Error>
source§impl<__S: Fallible + ?Sized> Serialize<__S> for SerializableModulewhere
SerializableCompilation: Serialize<__S>,
CompileModuleInfo: Serialize<__S>,
Box<[OwnedDataInitializer]>: Serialize<__S>,
u64: Serialize<__S>,
impl<__S: Fallible + ?Sized> Serialize<__S> for SerializableModulewhere
SerializableCompilation: Serialize<__S>,
CompileModuleInfo: Serialize<__S>,
Box<[OwnedDataInitializer]>: Serialize<__S>,
u64: Serialize<__S>,
Auto Trait Implementations§
impl Freeze for SerializableModule
impl RefUnwindSafe for SerializableModule
impl Send for SerializableModule
impl Sync for SerializableModule
impl Unpin for SerializableModule
impl UnwindSafe for SerializableModule
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
source§impl<T> ArchiveUnsized for Twhere
T: Archive,
impl<T> ArchiveUnsized for Twhere
T: Archive,
source§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive
, it may be unsized. Read more