Skip to main content

made_core/entities/
ceremony_agent_activity.rs

1use serde::{Deserialize, Serialize};
2
3use super::{CeremonyAgentActivityKind, CeremonyAgentStatus};
4
5/// One globally ordered host assertion in a ceremony's public activity feed.
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7pub struct CeremonyAgentActivity {
8    sequence: u64,
9    kind: CeremonyAgentActivityKind,
10    status: Box<CeremonyAgentStatus>,
11}
12
13impl CeremonyAgentActivity {
14    #[must_use]
15    pub fn new(
16        sequence: u64,
17        kind: CeremonyAgentActivityKind,
18        status: CeremonyAgentStatus,
19    ) -> Self {
20        debug_assert!(sequence > 0, "activity sequences start at one");
21        Self {
22            sequence,
23            kind,
24            status: Box::new(status),
25        }
26    }
27
28    #[must_use]
29    pub const fn sequence(&self) -> u64 {
30        self.sequence
31    }
32
33    #[must_use]
34    pub const fn kind(&self) -> CeremonyAgentActivityKind {
35        self.kind
36    }
37
38    #[must_use]
39    pub fn status(&self) -> &CeremonyAgentStatus {
40        &self.status
41    }
42}