pub struct AuditLog<E: DomainEvent> { /* private fields */ }Expand description
A reader that records every event it sees into an
AuditProjection. Construct via AuditLog::with_capacity.
Implementations§
Source§impl<E: DomainEvent> AuditLog<E>
impl<E: DomainEvent> AuditLog<E>
Sourcepub fn with_capacity(capacity: usize) -> Self
pub fn with_capacity(capacity: usize) -> Self
Construct an audit log with the given ring capacity. Wire
decoding via crate::cqrs::CqrsBuilder::with_event_codecs
— the registry takes priority over Reader::decode.
pub fn named(self, name: impl Into<String>) -> Self
Trait Implementations§
Source§impl<E: DomainEvent + Sync> Reader for AuditLog<E>
impl<E: DomainEvent + Sync> Reader for AuditLog<E>
Source§type Event = E
type Event = E
The event type this reader projects. Must match the aggregate’s
event type when wired into a
super::CqrsPattern.Source§type Projection = AuditProjection<E>
type Projection = AuditProjection<E>
The read-model state this reader builds.
Source§type Error = Error
type Error = Error
Domain error type for projection failures. Failures are logged
at
warn level; the runner advances past the offending event so
it doesn’t get stuck.Source§fn name(&self) -> &str
fn name(&self) -> &str
Stable name of this reader. Used for tracing spans and
dashboard child-actor naming. Must be unique per CQRS instance.
Source§fn decode(_bytes: &[u8]) -> Result<Self::Event, String>
fn decode(_bytes: &[u8]) -> Result<Self::Event, String>
Decode a journal payload back into the event type. The codec
must be the inverse of the aggregate’s
encode_event. Used
as the fallback when no crate::cqrs::EventCodecRegistry is
configured for the relevant manifest.Source§fn apply<'life0, 'life1, 'async_trait>(
&'life0 mut self,
p: &'life1 mut AuditProjection<E>,
event: E,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn apply<'life0, 'life1, 'async_trait>(
&'life0 mut self,
p: &'life1 mut AuditProjection<E>,
event: E,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Apply one event to the projection.
Source§fn tag(&self) -> Option<String>
fn tag(&self) -> Option<String>
Legacy tag filter. Default
None. Implemented in terms of
Self::filter so existing v1 readers keep working unchanged.
Prefer Self::filter in new code.Source§fn filter(&self) -> ReaderFilter
fn filter(&self) -> ReaderFilter
What stream of events this reader follows. Default returns
ReaderFilter::Tag when Self::tag is Some, else
ReaderFilter::All.Auto Trait Implementations§
impl<E> Freeze for AuditLog<E>
impl<E> RefUnwindSafe for AuditLog<E>where
E: RefUnwindSafe,
impl<E> Send for AuditLog<E>
impl<E> Sync for AuditLog<E>where
E: Sync,
impl<E> Unpin for AuditLog<E>where
E: Unpin,
impl<E> UnsafeUnpin for AuditLog<E>
impl<E> UnwindSafe for AuditLog<E>where
E: UnwindSafe,
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
Mutably borrows from an owned value. Read more