#[repr(C)]pub struct CrossCrateHeader {
pub magic: [u8; 4],
pub version: u16,
pub source_crate: u8,
pub flags: u8,
pub payload_len: u32,
pub checksum: [u8; 8],
}Expand description
Binary format header for cross-crate compatibility
Fields§
§magic: [u8; 4]Magic bytes: “DX∞C” (DX Infinity Cross-crate)
version: u16Format version
source_crate: u8Source crate identifier
flags: u8Flags
payload_len: u32Payload length
checksum: [u8; 8]Checksum (Blake3, first 8 bytes)
Implementations§
Source§impl CrossCrateHeader
impl CrossCrateHeader
Sourcepub const CURRENT_VERSION: u16 = 1
pub const CURRENT_VERSION: u16 = 1
Current format version
Sourcepub fn new(source: SourceCrate, payload_len: u32) -> Self
pub fn new(source: SourceCrate, payload_len: u32) -> Self
Create a new header
Sourcepub fn with_checksum(source: SourceCrate, payload: &[u8]) -> Self
pub fn with_checksum(source: SourceCrate, payload: &[u8]) -> Self
Create header with checksum
Sourcepub fn compute_checksum(payload: &[u8]) -> [u8; 8]
pub fn compute_checksum(payload: &[u8]) -> [u8; 8]
Compute checksum for payload
Sourcepub fn verify_checksum(&self, payload: &[u8]) -> bool
pub fn verify_checksum(&self, payload: &[u8]) -> bool
Verify the checksum
Sourcepub fn is_valid_magic(&self) -> bool
pub fn is_valid_magic(&self) -> bool
Check if magic bytes are valid
Sourcepub fn source(&self) -> SourceCrate
pub fn source(&self) -> SourceCrate
Get the source crate
Sourcepub fn from_bytes(bytes: &[u8]) -> Result<&Self>
pub fn from_bytes(bytes: &[u8]) -> Result<&Self>
Parse from bytes
Trait Implementations§
Source§impl Clone for CrossCrateHeader
impl Clone for CrossCrateHeader
Source§fn clone(&self) -> CrossCrateHeader
fn clone(&self) -> CrossCrateHeader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for CrossCrateHeader
Auto Trait Implementations§
impl Freeze for CrossCrateHeader
impl RefUnwindSafe for CrossCrateHeader
impl Send for CrossCrateHeader
impl Sync for CrossCrateHeader
impl Unpin for CrossCrateHeader
impl UnsafeUnpin for CrossCrateHeader
impl UnwindSafe for CrossCrateHeader
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> 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.