statime/port/
sequence_id.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#[derive(Clone, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash)]
pub(crate) struct SequenceIdGenerator {
    current: u16,
}

impl SequenceIdGenerator {
    pub(crate) fn new() -> Self {
        SequenceIdGenerator { current: 0 }
    }

    pub(crate) fn generate(&mut self) -> u16 {
        let id = self.current;
        self.current = self.current.wrapping_add(1);
        id
    }
}