Crate peeking_iter

Source
Expand description

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

use peeking_iter::peeking::*;

fn main() {
    let mut 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)

Modules§

parser
Parsing-specific iterator, with full peeking support.
peeking
Main iterator type and traits that enable peeking.