pub struct EventMeta {
pub dispatch: u8,
pub flags: u8,
pub _pad: [u8; 2],
pub origin_hash: u64,
pub seq_or_ts: u64,
pub checksum: u32,
}Expand description
Fixed 24-byte prefix on every payload appended through the CortEX adapter.
The in-memory layout is whatever the compiler chooses; the wire /
on-disk format is produced by Self::to_bytes and consumed by
Self::from_bytes.
Fields§
§dispatch: u8Event classifier. 0x00..0x7F reserved for CortEX-internal
dispatches; 0x80..0xFF for application / vendor use.
flags: u8Causal / continuity / proof bits. See FLAG_* constants.
_pad: [u8; 2]Reserved; must be zero on write, ignored on read.
origin_hash: u64Producer identity — full EntityKeypair::origin_hash()
value, not a truncation.
seq_or_ts: u64Per-origin monotonic counter OR unix nanos. Application identity — orthogonal to the RedEX storage sequence.
checksum: u32xxh3 truncation of the type-specific tail (the bytes after the 24-byte prefix in the RedEX payload).
Implementations§
Source§impl EventMeta
impl EventMeta
Sourcepub fn new(
dispatch: u8,
flags: u8,
origin_hash: u64,
seq_or_ts: u64,
checksum: u32,
) -> Self
pub fn new( dispatch: u8, flags: u8, origin_hash: u64, seq_or_ts: u64, checksum: u32, ) -> Self
Build an EventMeta with zeroed pad bytes.
Sourcepub fn to_bytes(&self) -> [u8; 24]
pub fn to_bytes(&self) -> [u8; 24]
Encode to the 24-byte little-endian wire format. The reserved
_pad bytes are always written as zero regardless of what the
caller stuffed into them — the wire contract says “zero on
write, ignored on read.”
#[inline(always)] per perf #100 — mirrors the perf #70 fix
on RedexEntry::to_bytes. The body is 4 copy_from_slice
calls on u64/u32 little-endian bytes plus two byte
stores: small enough that the optimizer fuses the writes
(e.g. with the next byte that the caller is about to stream
into a frame buffer) once the call disappears. Called in the
inner loop of every CortEX RPC encode and every per-event
checksum re-derive (for_checksum_bytes below), so the
per-call overhead matters per-event.
Sourcepub fn from_bytes(bytes: &[u8]) -> Option<Self>
pub fn from_bytes(bytes: &[u8]) -> Option<Self>
Decode from a 24-byte slice. Returns None if the slice is
shorter than 24 bytes.
#[inline(always)] per perf #100 — same rationale as
Self::to_bytes: small body (one length check + four
little-endian field decodes) that’s called in the inner loop
of CortEX inbound RPC decode and replication apply.
Trait Implementations§
impl Copy for EventMeta
impl Eq for EventMeta
impl StructuralPartialEq for EventMeta
Auto Trait Implementations§
impl Freeze for EventMeta
impl RefUnwindSafe for EventMeta
impl Send for EventMeta
impl Sync for EventMeta
impl Unpin for EventMeta
impl UnsafeUnpin for EventMeta
impl UnwindSafe for EventMeta
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.