Struct wasmer_types::SerializableModule
source · 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 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 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
§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,
§type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
Archive
, it may be unsized. Read more