Struct wasmer_types::compilation::symbols::ModuleMetadata
source · pub struct ModuleMetadata {
pub compile_info: CompileModuleInfo,
pub prefix: String,
pub data_initializers: Box<[OwnedDataInitializer]>,
pub function_body_lengths: PrimaryMap<LocalFunctionIndex, u64>,
pub cpu_features: u64,
}
Expand description
Serializable struct that represents the compiled metadata.
Fields§
§compile_info: CompileModuleInfo
Compile info
prefix: String
Prefix for function etc symbols
data_initializers: Box<[OwnedDataInitializer]>
Data initializers
function_body_lengths: PrimaryMap<LocalFunctionIndex, u64>
The function body lengths (used to find function by address)
cpu_features: u64
CPU features used (See CpuFeature
)
Implementations§
source§impl ModuleMetadata
impl ModuleMetadata
sourcepub fn split(
&mut self
) -> (&mut CompileModuleInfo, ModuleMetadataSymbolRegistry)
pub fn split( &mut self ) -> (&mut CompileModuleInfo, ModuleMetadataSymbolRegistry)
Get mutable ref to compile info and a copy of the registry
sourcepub fn get_symbol_registry(&self) -> ModuleMetadataSymbolRegistry
pub fn get_symbol_registry(&self) -> ModuleMetadataSymbolRegistry
Returns symbol registry.
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(
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)
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 fn deserialize_checked(
metadata_slice: &[u8]
) -> Result<Self, DeserializeError>
pub fn deserialize_checked( 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)
sourcepub fn deserialize_from_archive(
archived: &ArchivedModuleMetadata
) -> Result<Self, DeserializeError>
pub fn deserialize_from_archive( archived: &ArchivedModuleMetadata ) -> Result<Self, DeserializeError>
Deserialize a compilation module from an archive
Trait Implementations§
source§impl Archive for ModuleMetadatawhere
CompileModuleInfo: Archive,
String: Archive,
Box<[OwnedDataInitializer]>: Archive,
PrimaryMap<LocalFunctionIndex, u64>: Archive,
u64: Archive,
impl Archive for ModuleMetadatawhere CompileModuleInfo: Archive, String: Archive, Box<[OwnedDataInitializer]>: Archive, PrimaryMap<LocalFunctionIndex, u64>: Archive, u64: Archive,
§type Archived = ArchivedModuleMetadata
type Archived = ArchivedModuleMetadata
§type Resolver = ModuleMetadataResolver
type Resolver = ModuleMetadataResolver
source§impl Debug for ModuleMetadata
impl Debug for ModuleMetadata
source§impl<__D: Fallible + ?Sized> Deserialize<ModuleMetadata, __D> for Archived<ModuleMetadata>where
CompileModuleInfo: Archive,
Archived<CompileModuleInfo>: Deserialize<CompileModuleInfo, __D>,
String: Archive,
Archived<String>: Deserialize<String, __D>,
Box<[OwnedDataInitializer]>: Archive,
Archived<Box<[OwnedDataInitializer]>>: Deserialize<Box<[OwnedDataInitializer]>, __D>,
PrimaryMap<LocalFunctionIndex, u64>: Archive,
Archived<PrimaryMap<LocalFunctionIndex, u64>>: Deserialize<PrimaryMap<LocalFunctionIndex, u64>, __D>,
u64: Archive,
Archived<u64>: Deserialize<u64, __D>,
impl<__D: Fallible + ?Sized> Deserialize<ModuleMetadata, __D> for Archived<ModuleMetadata>where CompileModuleInfo: Archive, Archived<CompileModuleInfo>: Deserialize<CompileModuleInfo, __D>, String: Archive, Archived<String>: Deserialize<String, __D>, Box<[OwnedDataInitializer]>: Archive, Archived<Box<[OwnedDataInitializer]>>: Deserialize<Box<[OwnedDataInitializer]>, __D>, PrimaryMap<LocalFunctionIndex, u64>: Archive, Archived<PrimaryMap<LocalFunctionIndex, u64>>: Deserialize<PrimaryMap<LocalFunctionIndex, u64>, __D>, u64: Archive, Archived<u64>: Deserialize<u64, __D>,
source§fn deserialize(
&self,
deserializer: &mut __D
) -> Result<ModuleMetadata, __D::Error>
fn deserialize( &self, deserializer: &mut __D ) -> Result<ModuleMetadata, __D::Error>
source§impl<__S: Fallible + ?Sized> Serialize<__S> for ModuleMetadatawhere
CompileModuleInfo: Serialize<__S>,
String: Serialize<__S>,
Box<[OwnedDataInitializer]>: Serialize<__S>,
PrimaryMap<LocalFunctionIndex, u64>: Serialize<__S>,
u64: Serialize<__S>,
impl<__S: Fallible + ?Sized> Serialize<__S> for ModuleMetadatawhere CompileModuleInfo: Serialize<__S>, String: Serialize<__S>, Box<[OwnedDataInitializer]>: Serialize<__S>, PrimaryMap<LocalFunctionIndex, u64>: Serialize<__S>, u64: Serialize<__S>,
Auto Trait Implementations§
impl RefUnwindSafe for ModuleMetadata
impl Send for ModuleMetadata
impl Sync for ModuleMetadata
impl Unpin for ModuleMetadata
impl UnwindSafe for ModuleMetadata
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