Skip to main content

cesr/core/primitives/
seqner.rs

1use super::number::Number;
2
3/// CESR sequence number, wrapping a [`Number`] for event ordering.
4#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct Seqner {
6    inner: Number,
7}
8
9impl Seqner {
10    /// Creates a `Seqner` from a sequence number value.
11    #[must_use]
12    pub const fn new(sn: u128) -> Self {
13        Self {
14            inner: Number::new(sn),
15        }
16    }
17
18    /// Returns the sequence number value.
19    #[must_use]
20    pub const fn value(&self) -> u128 {
21        self.inner.value()
22    }
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn seqner_wraps_number() {
31        let s = Seqner::new(42);
32        assert_eq!(s.value(), 42);
33    }
34}