peeking-iter 0.3.0

An iterator adapter that allows infinitely-deep peeking
Documentation

peeking-iter

A fast and simple iterator adapter that allows peeking with any depth:

use peeking_iter::peeking::PeekingIter;

fn main() {
    let it = PeekingIter::new(0..=2);

    assert_eq!(it.next(), Some(0));
    assert_eq!(it.peek(), Some(1));
    assert_eq!(it.peek(), Some(2));
    assert_eq!(it.next(), Some(1));
    assert_eq!(it.peek(), Some(2));
    assert_eq!(it.peek(), None);
}

Why?

  • ~1.5x faster than itertools' MultiPeek
  • Has useful methods initially designed with lexing and parsing in mind (see Parser)