Structs

A wrapper around an existing iterator to extend it with backtracking functionality
A backwalk through a BacktrackingIterator’s history. Yields references to items in the history, and can be used to walk back to a desired point. The current position is before the most-recently-yielded element. To restart a BacktrackingIterator at the current position of the backwalk, use the history_position() method.

Traits

A trait for defining backtracking behaviour over This serves to generify the copying and non-copying verions and their behaviour
A trait for walking back over a backtracking history
A trait for an iterator that can be walked back on, parameterised for a lifetime This trait is a workaround for the lack of generic associated types - it is expected to be implemented for every lifetime, for reasons of utility

Functions