made_core/entities/
commit_outcome.rs1use crate::entities::AuditRecord;
2use crate::value_objects::{CeremonyRevision, ExpectedRevision};
3
4#[derive(Debug, Clone, PartialEq)]
6pub enum CommitOutcome {
7 Committed {
8 revision: CeremonyRevision,
9 records: Vec<AuditRecord>,
10 },
11 Conflict {
12 expected: ExpectedRevision,
13 stored: Option<CeremonyRevision>,
14 },
15}
16
17impl CommitOutcome {
18 #[must_use]
19 pub fn committed_revision(&self) -> Option<CeremonyRevision> {
20 match self {
21 Self::Committed { revision, .. } => Some(*revision),
22 Self::Conflict { .. } => None,
23 }
24 }
25
26 #[must_use]
27 pub fn records(&self) -> &[AuditRecord] {
28 match self {
29 Self::Committed { records, .. } => records,
30 Self::Conflict { .. } => &[],
31 }
32 }
33
34 #[must_use]
35 pub fn is_conflict(&self) -> bool {
36 matches!(self, Self::Conflict { .. })
37 }
38}