made-core 0.8.0

Domain core of MADE: entities, value objects, events, ports. No IO.
Documentation
//! [`CeremonyCommand`] — what a caller asks of a running ceremony.
//!
//! A command is decided, never applied: [`CeremonyInstance::decide`]
//! turns it into the events it would produce, or refuses it, and only
//! the events change state. One variant per mutation the aggregate
//! accepts, each wrapping a struct that carries exactly what the
//! corresponding mutator takes.
//!
//! Starting a ceremony is not here. A command is addressed to an
//! instance that exists; opening one is a constructor,
//! [`CeremonyInstance::decide_start`], which yields the opening event
//! with nothing to decide against.
//!
//! [`CeremonyInstance::decide`]: super::CeremonyInstance::decide
//! [`CeremonyInstance::decide_start`]: super::CeremonyInstance::decide_start

use super::ceremony_commands::{
    AcceptChildCompletion, AcknowledgeInterventionDelivery, AdoptChildSpawnPlan,
    ApplyExecutionReceiptResult, ApplyStepResult, ApplyTransition, ApproveGuard, AssertReason,
    BindParticipant, CancelCeremony, CloseIntervention, DeferGuard, EnforceCeremonyDeadlines,
    PauseCeremony, PlanCeremonyChildren, PlanSuccessor, RenewStepLease, RequestIntervention,
    RespondToIntervention, RespondToInterventionWithEvidence, ResumeCeremony, StartStep,
};

/// A request to change a ceremony, in the terms the aggregate decides.
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CeremonyCommand {
    RecordHostHandoff(super::ceremony_commands::RecordHostHandoff),
    BindParticipant(BindParticipant),
    StartStep(StartStep),
    RenewStepLease(RenewStepLease),
    ApplyStepResult(ApplyStepResult),
    ApplyExecutionReceiptResult(ApplyExecutionReceiptResult),
    ApplyTransition(ApplyTransition),
    ApproveGuard(ApproveGuard),
    DeferGuard(DeferGuard),
    RequestIntervention(RequestIntervention),
    RespondToIntervention(RespondToIntervention),
    RespondToInterventionWithEvidence(RespondToInterventionWithEvidence),
    AcknowledgeInterventionDelivery(AcknowledgeInterventionDelivery),
    AssertReason(AssertReason),
    CloseIntervention(CloseIntervention),
    PlanCeremonyChildren(PlanCeremonyChildren),
    PlanSuccessor(PlanSuccessor),
    AdoptChildSpawnPlan(AdoptChildSpawnPlan),
    AcceptChildCompletion(AcceptChildCompletion),
    PauseCeremony(PauseCeremony),
    ResumeCeremony(ResumeCeremony),
    CancelCeremony(CancelCeremony),
    EnforceCeremonyDeadlines(EnforceCeremonyDeadlines),
}