made_core/ports/null_observer.rs
1use async_trait::async_trait;
2use time::OffsetDateTime;
3
4use crate::entities::DeliberationPhase;
5use crate::ports::DeliberationObserverPort;
6use crate::value_objects::TaskId;
7
8/// No-op deliberation observer for callers without a live stream.
9#[derive(Debug, Default, Clone)]
10pub struct NullObserver;
11
12#[async_trait]
13impl DeliberationObserverPort for NullObserver {
14 async fn on_phase_changed(
15 &self,
16 _task_id: &TaskId,
17 _phase: DeliberationPhase,
18 _emitted_at: OffsetDateTime,
19 ) {
20 }
21}