pub trait Resetable {
type Checkpoint: Clone;
fn checkpoint(&self) -> Self::Checkpoint;
fn reset(&mut self, checkpoint: Self::Checkpoint);
}
impl<I> Resetable for BufferedStream<I> where
I: Positioned, type Checkpoint = usize;
impl Resetable for IndexPositioner type Checkpoint = Self;
impl Resetable for SourcePosition type Checkpoint = Self;
impl<I, X> Resetable for State<I, X> where
I: Resetable,
X: Resetable, type Checkpoint = State<I::Checkpoint, X::Checkpoint>;
impl<S> Resetable for Stream<S> where
S: Resetable, type Checkpoint = S::Checkpoint;
impl<'a, T> Resetable for SliceStream<'a, T> type Checkpoint = Self;
impl<T: Clone> Resetable for IteratorStream<T> type Checkpoint = Self;
impl<S> Resetable for PartialStream<S> where
S: Resetable, type Checkpoint = S::Checkpoint;