pub struct EventService<S>where
S: EventStore,{ /* private fields */ }
Expand description
Service for managing domain events with DTO conversion
Implementations§
Source§impl<S> EventService<S>where
S: EventStore,
impl<S> EventService<S>where
S: EventStore,
Sourcepub fn add_subscriber(
&mut self,
subscriber: Arc<dyn EventSubscriber + Send + Sync>,
)
pub fn add_subscriber( &mut self, subscriber: Arc<dyn EventSubscriber + Send + Sync>, )
Add event subscriber
Sourcepub async fn publish_event(
&mut self,
event: DomainEvent,
) -> ApplicationResult<()>
pub async fn publish_event( &mut self, event: DomainEvent, ) -> ApplicationResult<()>
Publish domain event (converts to DTO for serialization)
Sourcepub async fn publish_events(
&mut self,
events: Vec<DomainEvent>,
) -> ApplicationResult<()>
pub async fn publish_events( &mut self, events: Vec<DomainEvent>, ) -> ApplicationResult<()>
Publish multiple domain events
Sourcepub fn get_session_events_dto(
&self,
session_id: SessionId,
) -> ApplicationResult<Vec<DomainEventDto>>
pub fn get_session_events_dto( &self, session_id: SessionId, ) -> ApplicationResult<Vec<DomainEventDto>>
Get events for session as DTOs (for API responses)
Sourcepub fn get_stream_events_dto(
&self,
stream_id: StreamId,
) -> ApplicationResult<Vec<DomainEventDto>>
pub fn get_stream_events_dto( &self, stream_id: StreamId, ) -> ApplicationResult<Vec<DomainEventDto>>
Get events for stream as DTOs (for API responses)
Sourcepub fn get_events_since_dto(
&self,
since: DateTime<Utc>,
) -> ApplicationResult<Vec<DomainEventDto>>
pub fn get_events_since_dto( &self, since: DateTime<Utc>, ) -> ApplicationResult<Vec<DomainEventDto>>
Get events since timestamp as DTOs (for API responses)
Sourcepub fn get_session_events(
&self,
session_id: SessionId,
) -> ApplicationResult<Vec<DomainEvent>>
pub fn get_session_events( &self, session_id: SessionId, ) -> ApplicationResult<Vec<DomainEvent>>
Get events for session (domain objects, for internal use)
Sourcepub fn get_stream_events(
&self,
stream_id: StreamId,
) -> ApplicationResult<Vec<DomainEvent>>
pub fn get_stream_events( &self, stream_id: StreamId, ) -> ApplicationResult<Vec<DomainEvent>>
Get events for stream (domain objects, for internal use)
Sourcepub fn replay_from_dtos(
&mut self,
event_dtos: Vec<DomainEventDto>,
) -> ApplicationResult<Vec<DomainEvent>>
pub fn replay_from_dtos( &mut self, event_dtos: Vec<DomainEventDto>, ) -> ApplicationResult<Vec<DomainEvent>>
Replay events from DTOs (for event sourcing reconstruction)
Source§impl<S> EventService<S>where
S: EventStore,
Event publishing convenience methods
impl<S> EventService<S>where
S: EventStore,
Event publishing convenience methods
Sourcepub async fn publish_session_activated(
&mut self,
session_id: SessionId,
) -> ApplicationResult<()>
pub async fn publish_session_activated( &mut self, session_id: SessionId, ) -> ApplicationResult<()>
Publish session activated event
Sourcepub async fn publish_session_closed(
&mut self,
session_id: SessionId,
) -> ApplicationResult<()>
pub async fn publish_session_closed( &mut self, session_id: SessionId, ) -> ApplicationResult<()>
Publish session closed event
Sourcepub async fn publish_stream_created(
&mut self,
session_id: SessionId,
stream_id: StreamId,
) -> ApplicationResult<()>
pub async fn publish_stream_created( &mut self, session_id: SessionId, stream_id: StreamId, ) -> ApplicationResult<()>
Publish stream created event
Sourcepub async fn publish_stream_completed(
&mut self,
session_id: SessionId,
stream_id: StreamId,
) -> ApplicationResult<()>
pub async fn publish_stream_completed( &mut self, session_id: SessionId, stream_id: StreamId, ) -> ApplicationResult<()>
Publish stream completed event
Sourcepub async fn publish_stream_failed(
&mut self,
session_id: SessionId,
stream_id: StreamId,
error: String,
) -> ApplicationResult<()>
pub async fn publish_stream_failed( &mut self, session_id: SessionId, stream_id: StreamId, error: String, ) -> ApplicationResult<()>
Publish stream failed event
Auto Trait Implementations§
impl<S> Freeze for EventService<S>
impl<S> !RefUnwindSafe for EventService<S>
impl<S> Send for EventService<S>where
S: Send,
impl<S> Sync for EventService<S>where
S: Send,
impl<S> Unpin for EventService<S>
impl<S> !UnwindSafe for EventService<S>
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