pub struct EventMetadata { /* private fields */ }Expand description
Fields shared by every event: timestamp, raw bytes, and raw-bytes hash.
Constructed via EventMetadata::new, which computes the raw_bytes_hash
from raw_bytes to enforce the invariant that the hash always matches.
This is critical for server-side deduplication via event fingerprints.
The timestamp is Option<DateTime<Utc>> because some log entries lack
a parseable timestamp in the header. None means “no timestamp found in
the log entry” — downstream consumers must handle this explicitly rather
than receiving a synthetic Utc::now() that would break fingerprinting
and chronological ordering.
All fields are private to protect the hash invariant. Use the accessor methods to read them.
Deserialization also enforces this invariant: the hash is recomputed from
raw_bytes during deserialization rather than trusting the serialized value.
Implementations§
Source§impl EventMetadata
impl EventMetadata
Sourcepub fn new(timestamp: Option<DateTime<Utc>>, raw_bytes: Vec<u8>) -> Self
pub fn new(timestamp: Option<DateTime<Utc>>, raw_bytes: Vec<u8>) -> Self
Creates a new EventMetadata, computing raw_bytes_hash as the
SHA-256 digest of raw_bytes.
timestamp is None when the log entry header did not contain a
parseable timestamp. This preserves the distinction between “real
timestamp from the log” and “no timestamp available” for downstream
consumers.
Sourcepub fn timestamp(&self) -> Option<DateTime<Utc>>
pub fn timestamp(&self) -> Option<DateTime<Utc>>
Returns the UTC timestamp parsed from the log entry header, or
None if the entry did not contain a parseable timestamp.
Sourcepub fn raw_bytes_hash(&self) -> &[u8; 32]
pub fn raw_bytes_hash(&self) -> &[u8; 32]
Returns the SHA-256 hash of raw_bytes.
Trait Implementations§
Source§impl Clone for EventMetadata
impl Clone for EventMetadata
Source§fn clone(&self) -> EventMetadata
fn clone(&self) -> EventMetadata
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EventMetadata
impl Debug for EventMetadata
Source§impl<'de> Deserialize<'de> for EventMetadata
Custom Deserialize that recomputes raw_bytes_hash from raw_bytes,
ensuring the hash invariant survives serialization round-trips.
impl<'de> Deserialize<'de> for EventMetadata
Custom Deserialize that recomputes raw_bytes_hash from raw_bytes,
ensuring the hash invariant survives serialization round-trips.