1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use std::hash::Hash;

use stable_id_traits::Successor;

use crate::Sequence;

impl<IndexT> Sequence<IndexT>
where
    IndexT: Successor + Clone + Copy + Hash + Eq,
{
    pub const fn continue_from(start: IndexT) -> Self {
        Self { counter: start }
    }

    pub fn next_value(&mut self) -> IndexT {
        let ret = self.counter;
        self.counter = ret.next_value();
        ret
    }
}