relay_knowledge/domain/
graph_version.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
5pub struct GraphVersion(u64);
6
7impl GraphVersion {
8 pub const ZERO: Self = Self(0);
10
11 pub const fn new(value: u64) -> Self {
13 Self(value)
14 }
15
16 pub const fn get(self) -> u64 {
18 self.0
19 }
20}
21
22#[cfg(test)]
23mod tests {
24 use super::*;
25
26 #[test]
27 fn exposes_numeric_graph_version() {
28 assert_eq!(GraphVersion::ZERO.get(), 0);
29 assert_eq!(GraphVersion::new(42).get(), 42);
30 }
31}