Skip to main content

made_core/value_objects/
support_verdict.rs

1use serde::{Deserialize, Serialize};
2
3use super::{SupportConfidence, SupportDecision, SupportRationale};
4
5/// Evidence judge decision captured as domain values.
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7pub struct SupportVerdict {
8    decision: SupportDecision,
9    confidence: SupportConfidence,
10    rationale: SupportRationale,
11}
12
13impl SupportVerdict {
14    #[must_use]
15    pub const fn new(
16        decision: SupportDecision,
17        confidence: SupportConfidence,
18        rationale: SupportRationale,
19    ) -> Self {
20        Self {
21            decision,
22            confidence,
23            rationale,
24        }
25    }
26
27    #[must_use]
28    pub const fn decision(&self) -> SupportDecision {
29        self.decision
30    }
31
32    #[must_use]
33    pub const fn confidence(&self) -> SupportConfidence {
34        self.confidence
35    }
36
37    #[must_use]
38    pub const fn rationale(&self) -> &SupportRationale {
39        &self.rationale
40    }
41}