made-core 0.3.0

Domain core of MADE: entities, value objects, events, ports. No IO.
Documentation
use async_trait::async_trait;
use time::OffsetDateTime;

use crate::entities::DeliberationPhase;
use crate::ports::DeliberationObserverPort;
use crate::value_objects::TaskId;

/// No-op deliberation observer for callers without a live stream.
#[derive(Debug, Default, Clone)]
pub struct NullObserver;

#[async_trait]
impl DeliberationObserverPort for NullObserver {
    async fn on_phase_changed(
        &self,
        _task_id: &TaskId,
        _phase: DeliberationPhase,
        _emitted_at: OffsetDateTime,
    ) {
    }
}