itertools
impl<I> Iterator for PutBack<I> where I: Iterator, type Item = I::Item;
pub fn put_back<I>(iterable: I) -> PutBack<I::IntoIter> where I: IntoIterator,
Create an iterator where you can put back a single item