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 UniversalArtifactInfo
.
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(
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: &ArchivedSerializableModule,
) -> Result<Self, DeserializeError>
pub fn deserialize_from_archive( archived: &ArchivedSerializableModule, ) -> Result<Self, DeserializeError>
Deserialize a compilation module from an archive
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>
Deserializes using the given deserializer
Source§impl MemoryUsage for SerializableModule
impl MemoryUsage for SerializableModule
Source§fn size_of_val(&self, visited: &mut dyn MemoryUsageTracker) -> usize
fn size_of_val(&self, visited: &mut dyn MemoryUsageTracker) -> usize
Returns the size of the referenced value in bytes. Read more
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 = ()
The archived version of the pointer metadata for this type.
Source§fn 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.
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
The archived counterpart of this type. Unlike
Archive
, it may be unsized. Read moreSource§type MetadataResolver = ()
type MetadataResolver = ()
The resolver for the metadata of this type. Read more
Source§unsafe 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
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<T, S> SerializeUnsized<S> for T
impl<T, S> SerializeUnsized<S> for T
Source§impl<T> Upcastable for T
impl<T> Upcastable for T
Source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
Source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref