pub struct EventRecord {
pub event_name: String,
pub payload_codec: Cow<'static, str>,
pub payload_codec_version: u16,
pub payload: Vec<u8>,
pub event_version: u64,
pub sequence: u64,
pub timestamp: SystemTime,
pub metadata: HashMap<String, String>,
}Expand description
Replayable aggregate event record stored in an event-sourced entity stream.
EventRecord is model history for aggregate hydration. It is not
automatically a domain event or integration message; publishable messages
belong in the outbox/bus boundary.
Fields§
§event_name: String§payload_codec: Cow<'static, str>Payload codec name. Cow because virtually every event carries the
crate’s own codec constant — the borrowed variant avoids one heap
allocation per event created and per row decoded.
payload_codec_version: u16§payload: Vec<u8>§event_version: u64§sequence: u64§timestamp: SystemTime§metadata: HashMap<String, String>Implementations§
Source§impl EventRecord
impl EventRecord
pub fn new( event_name: impl Into<String>, payload: Vec<u8>, sequence: u64, ) -> Self
Sourcepub fn new_versioned(
event_name: impl Into<String>,
payload: Vec<u8>,
sequence: u64,
version: u64,
) -> Self
pub fn new_versioned( event_name: impl Into<String>, payload: Vec<u8>, sequence: u64, version: u64, ) -> Self
Create an event record at a specific version.
Sourcepub fn with_metadata(
event_name: impl Into<String>,
payload: Vec<u8>,
sequence: u64,
metadata: HashMap<String, String>,
) -> Self
pub fn with_metadata( event_name: impl Into<String>, payload: Vec<u8>, sequence: u64, metadata: HashMap<String, String>, ) -> Self
Create an event record with metadata.
Sourcepub fn decode<T: DeserializeOwned>(&self) -> Result<T, EventRecordError>
pub fn decode<T: DeserializeOwned>(&self) -> Result<T, EventRecordError>
Deserialize the payload into the specified type.
Sourcepub fn payload_bytes(&self) -> &[u8] ⓘ
pub fn payload_bytes(&self) -> &[u8] ⓘ
Get the raw payload bytes.
Sourcepub fn correlation_id(&self) -> Option<&str>
pub fn correlation_id(&self) -> Option<&str>
Get the correlation ID, if set.
Sourcepub fn causation_id(&self) -> Option<&str>
pub fn causation_id(&self) -> Option<&str>
Get the causation ID, if set.
Sourcepub fn traceparent(&self) -> Option<&str>
pub fn traceparent(&self) -> Option<&str>
Get the W3C traceparent, if set.
Sourcepub fn tracestate(&self) -> Option<&str>
pub fn tracestate(&self) -> Option<&str>
Get the W3C tracestate, if set.
Sourcepub fn trace_context(&self) -> TraceContext
pub fn trace_context(&self) -> TraceContext
Extract W3C trace context from event metadata.
Trait Implementations§
Source§impl Clone for EventRecord
impl Clone for EventRecord
Source§fn clone(&self) -> EventRecord
fn clone(&self) -> EventRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EventRecord
impl Debug for EventRecord
Source§impl<'de> Deserialize<'de> for EventRecord
impl<'de> Deserialize<'de> for EventRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for EventRecord
impl PartialEq for EventRecord
Source§impl Serialize for EventRecord
impl Serialize for EventRecord
impl StructuralPartialEq for EventRecord
Auto Trait Implementations§
impl Freeze for EventRecord
impl RefUnwindSafe for EventRecord
impl Send for EventRecord
impl Sync for EventRecord
impl Unpin for EventRecord
impl UnsafeUnpin for EventRecord
impl UnwindSafe for EventRecord
Blanket Implementations§
Source§impl<T> AggregateBuilder for T
impl<T> AggregateBuilder for T
fn aggregate<A: Aggregate>(self) -> AggregateRepository<Self, A>
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Queueable for T
impl<T> Queueable for T
Source§fn queued(self) -> QueuedRepository<Self, InMemoryLockManager>
fn queued(self) -> QueuedRepository<Self, InMemoryLockManager>
.aggregate::<T>() for per-aggregate serialization over the async
repository surface.