laminar_core/checkpoint/
authority.rs1use uuid::Uuid;
4
5#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
7#[serde(deny_unknown_fields)]
8pub struct LeaderProofOwner {
9 pub node_id: u64,
11 pub boot_id: Uuid,
13 pub process_term: u64,
15}
16
17impl LeaderProofOwner {
18 #[must_use]
20 pub fn is_canonical(&self) -> bool {
21 self.node_id != 0 && !self.boot_id.is_nil() && self.process_term != 0
22 }
23}
24
25#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
27#[serde(deny_unknown_fields)]
28pub struct LeaderProof {
29 pub owner: LeaderProofOwner,
31 pub fencing_token: u64,
33}
34
35impl LeaderProof {
36 #[must_use]
38 pub fn is_canonical(&self) -> bool {
39 self.owner.is_canonical() && self.fencing_token != 0
40 }
41}