made_core/value_objects/ceremony/
state_timeout.rs1use crate::{error::DomainError, value_objects::DurationMs};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5#[serde(transparent)]
6pub struct StateTimeout(DurationMs);
7impl StateTimeout {
8 pub fn new(duration: DurationMs) -> Result<Self, DomainError> {
9 if duration == DurationMs::ZERO {
10 Err(DomainError::MustBeNonZero {
11 field: "state_timeout",
12 })
13 } else {
14 Ok(Self(duration))
15 }
16 }
17 #[must_use]
18 pub fn duration(self) -> DurationMs {
19 self.0
20 }
21}