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
sourceimpl 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_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
sourceimpl Archive for ModuleMetadata where
CompileModuleInfo: Archive,
String: Archive,
Box<[OwnedDataInitializer]>: Archive,
PrimaryMap<LocalFunctionIndex, u64>: Archive,
u64: Archive,
impl Archive for ModuleMetadata where
CompileModuleInfo: Archive,
String: Archive,
Box<[OwnedDataInitializer]>: Archive,
PrimaryMap<LocalFunctionIndex, u64>: Archive,
u64: Archive,
type Archived = ArchivedModuleMetadata
type Archived = ArchivedModuleMetadata
The archived representation of this type. Read more
type Resolver = ModuleMetadataResolver
type Resolver = ModuleMetadataResolver
The resolver for this type. It must contain all the additional information from serializing needed to make the archived type from the normal type. Read more
sourceimpl Debug for ModuleMetadata
impl Debug for ModuleMetadata
sourceimpl<__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>,
sourcefn deserialize(
&self,
deserializer: &mut __D
) -> Result<ModuleMetadata, __D::Error>
fn deserialize(
&self,
deserializer: &mut __D
) -> Result<ModuleMetadata, __D::Error>
Deserializes using the given deserializer
sourceimpl<__S: Fallible + ?Sized> Serialize<__S> for ModuleMetadata where
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 ModuleMetadata where
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
sourceimpl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
sourcefn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> ArchiveUnsized for T where
T: Archive,
impl<T> ArchiveUnsized for T where
T: Archive,
type Archived = <T as Archive>::Archived
type Archived = <T as Archive>::Archived
The archived counterpart of this type. Unlike Archive
, it may be unsized. Read more
type MetadataResolver = ()
type MetadataResolver = ()
The resolver for the metadata of this type. Read more
sourceunsafe fn resolve_metadata(
&self,
usize,
<T as ArchiveUnsized>::MetadataResolver,
*mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
)
unsafe fn resolve_metadata(
&self,
usize,
<T as ArchiveUnsized>::MetadataResolver,
*mut <<T as ArchiveUnsized>::Archived as ArchivePointee>::ArchivedMetadata
)
Creates the archived version of the metadata for this value at the given position and writes it to the given output. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more