made_core/ports/
processed_outcome.rs1use crate::value_objects::{
2 HostDeliveryRecord, HostDeliveryStateKind, IntegratorFence, ProcessedActionRef,
3};
4
5#[derive(Debug, Clone, PartialEq, Eq)]
7pub enum ProcessedOutcome {
8 Processed(HostDeliveryRecord),
10 AlreadyProcessed(HostDeliveryRecord),
12 Conflict { existing: Box<ProcessedActionRef> },
14 NotAcknowledged { state: HostDeliveryStateKind },
20 FenceRejected { current: IntegratorFence },
22 LeaseNotOwned,
24}
25
26impl ProcessedOutcome {
27 #[must_use]
28 pub const fn record(&self) -> Option<&HostDeliveryRecord> {
29 match self {
30 Self::Processed(record) | Self::AlreadyProcessed(record) => Some(record),
31 _ => None,
32 }
33 }
34
35 #[must_use]
36 pub const fn is_closed(&self) -> bool {
37 matches!(self, Self::Processed(_) | Self::AlreadyProcessed(_))
38 }
39}