Skip to main content

made_core/ports/
domain_event.rs

1use serde::{de::DeserializeOwned, Serialize};
2
3use crate::events::{
4    DeliberationCompletedEvent, PhaseChangedEvent, TaskCompletedEvent, TaskDispatchedEvent,
5    TaskFailedEvent,
6};
7
8/// Marker for serializable domain events accepted by messaging adapters.
9pub trait DomainEvent: Serialize + DeserializeOwned + Send + Sync + 'static {}
10
11impl DomainEvent for TaskDispatchedEvent {}
12impl DomainEvent for TaskCompletedEvent {}
13impl DomainEvent for TaskFailedEvent {}
14impl DomainEvent for DeliberationCompletedEvent {}
15impl DomainEvent for PhaseChangedEvent {}