pub trait SequenceFactory {
    type Sequence: Clone + Hash + Ord;
    type Delta: Add<Output = Self::Delta> + Clone;

    // Required methods
    fn base() -> Self::Sequence;
    fn acquire(&mut self, last: Self::Sequence) -> Self::Sequence;
    fn rewind(
        &self,
        current: Self::Sequence,
        amount: &Self::Delta
    ) -> Self::Sequence;
}

Required Associated Types§

source

type Sequence: Clone + Hash + Ord

source

type Delta: Add<Output = Self::Delta> + Clone

Required Methods§

source

fn base() -> Self::Sequence

source

fn acquire(&mut self, last: Self::Sequence) -> Self::Sequence

source

fn rewind( &self, current: Self::Sequence, amount: &Self::Delta ) -> Self::Sequence

Implementors§