seq_marked/seq_marked/
order_key.rs

1//! Implement the `SeqMarked<()>` which is used as an order key.
2
3use crate::Marked;
4use crate::seq_marked::SeqMarked;
5
6impl SeqMarked<()> {
7    /// Creates the smallest order key (seq=0, normal).
8    pub const fn zero() -> Self {
9        Self {
10            seq: 0,
11            marked: Marked::Normal(()),
12        }
13    }
14
15    pub const fn max_value() -> Self {
16        Self {
17            seq: u64::MAX,
18            marked: Marked::TombStone,
19        }
20    }
21}
22
23#[cfg(test)]
24mod tests {
25    use super::*;
26    use crate::Marked;
27
28    #[test]
29    fn test_zero() {
30        let zero = SeqMarked::<()>::zero();
31        assert_eq!(zero.seq, 0);
32        assert_eq!(zero.marked, Marked::Normal(()));
33    }
34
35    #[test]
36    fn test_max() {
37        let max = SeqMarked::<()>::max_value();
38        assert_eq!(max.seq, u64::MAX);
39        assert!(max.is_tombstone());
40    }
41}