Skip to main content

made_core/value_objects/ceremony/
ceremony_timeout.rs

1use 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 CeremonyTimeout(DurationMs);
7impl CeremonyTimeout {
8    pub fn new(duration: DurationMs) -> Result<Self, DomainError> {
9        if duration == DurationMs::ZERO {
10            Err(DomainError::MustBeNonZero {
11                field: "ceremony_timeout",
12            })
13        } else {
14            Ok(Self(duration))
15        }
16    }
17    #[must_use]
18    pub fn duration(self) -> DurationMs {
19        self.0
20    }
21}