1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
use crate::modular_num; modular_num! { pub SeqNumber(u32, 31) } pub struct SeqNumberRange { current: SeqNumber, end: SeqNumber, } impl Iterator for SeqNumberRange { type Item = SeqNumber; fn next(&mut self) -> Option<SeqNumber> { let ret = if self.current == self.end { None } else { Some(self.current) }; self.current += 1; ret } } pub fn seq_num_range(begin: SeqNumber, past_end: SeqNumber) -> SeqNumberRange { SeqNumberRange { current: begin, end: past_end, } }