Struct MessageHeader
#[repr(C, align(64))]pub struct MessageHeader {Show 19 fields
pub magic: u64,
pub version: u32,
pub flags: u32,
pub message_id: MessageId,
pub correlation_id: CorrelationId,
pub source_kernel: u64,
pub dest_kernel: u64,
pub message_type: u64,
pub priority: u8,
pub _reserved1: [u8; 7],
pub payload_size: u64,
pub checksum: u32,
pub _reserved2: u32,
pub timestamp: HlcTimestamp,
pub deadline: HlcTimestamp,
pub _reserved3a: [u8; 32],
pub _reserved3b: [u8; 32],
pub _reserved3c: [u8; 32],
pub _reserved3d: [u8; 8],
}Expand description
Fixed-size message header (256 bytes, cache-line aligned).
This header precedes the variable-length payload and provides all metadata needed for routing and processing.
Fields§
§magic: u64Magic number for validation (0xRINGKERN).
version: u32Header version for compatibility.
flags: u32Message flags.
message_id: MessageIdUnique message identifier.
correlation_id: CorrelationIdCorrelation ID for request-response.
source_kernel: u64Source kernel ID (0 for host).
dest_kernel: u64Destination kernel ID (0 for host).
message_type: u64Message type discriminator.
priority: u8Priority level.
_reserved1: [u8; 7]Reserved for alignment.
payload_size: u64Payload size in bytes.
checksum: u32Checksum of payload (CRC32).
_reserved2: u32Reserved for alignment.
timestamp: HlcTimestampHLC timestamp when message was created.
deadline: HlcTimestampDeadline timestamp (0 = no deadline).
_reserved3a: [u8; 32]Reserved for future use (split for derive compatibility).
_reserved3b: [u8; 32]Reserved for future use.
_reserved3c: [u8; 32]Reserved for future use.
_reserved3d: [u8; 8]Reserved for future use.
Implementations§
§impl MessageHeader
impl MessageHeader
pub const MAX_PAYLOAD_SIZE: usize = 65_536usize
pub const MAX_PAYLOAD_SIZE: usize = 65_536usize
Maximum payload size (64KB).
pub fn read_from(bytes: &[u8]) -> Option<MessageHeader>
pub fn read_from(bytes: &[u8]) -> Option<MessageHeader>
Read header from bytes.
pub fn new(
message_type: u64,
source_kernel: u64,
dest_kernel: u64,
payload_size: usize,
timestamp: HlcTimestamp,
) -> MessageHeader
pub fn new( message_type: u64, source_kernel: u64, dest_kernel: u64, payload_size: usize, timestamp: HlcTimestamp, ) -> MessageHeader
Create a new message header.
pub fn with_correlation(self, correlation_id: CorrelationId) -> MessageHeader
pub fn with_correlation(self, correlation_id: CorrelationId) -> MessageHeader
Set correlation ID.
pub fn with_priority(self, priority: Priority) -> MessageHeader
pub fn with_priority(self, priority: Priority) -> MessageHeader
Set priority.
pub fn with_deadline(self, deadline: HlcTimestamp) -> MessageHeader
pub fn with_deadline(self, deadline: HlcTimestamp) -> MessageHeader
Set deadline.
Trait Implementations§
§impl Clone for MessageHeader
impl Clone for MessageHeader
§fn clone(&self) -> MessageHeader
fn clone(&self) -> MessageHeader
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for MessageHeader
impl Debug for MessageHeader
§impl Default for MessageHeader
impl Default for MessageHeader
§fn default() -> MessageHeader
fn default() -> MessageHeader
impl Copy for MessageHeader
Auto Trait Implementations§
impl Freeze for MessageHeader
impl RefUnwindSafe for MessageHeader
impl Send for MessageHeader
impl Sync for MessageHeader
impl Unpin for MessageHeader
impl UnwindSafe for MessageHeader
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)