peepable is a Rust look-alike for Peekable
.
It behaves slightly different as it eagerly loads the next value in the Iterator.
This allows .peep()
to be called on an immutable reference, saving you from the
borrow checker.
```rust use std::iter::Iterator; use peepable::Peepable;
let mut iter = vec![1, 2, 3].into_iter();
// Note, this is not "mut peeper"! let peeper = Peepable::new(iter);
assert_eq!(peeper.peep(), Some(&1));
// When mutable, we can use it as a normal iterator. let mut peeper = peeper;
assert_eq!(peeper.next(), Some(1));
asserteq!(peeper.peep(), Some(&2)); asserteq!(peeper.next(), Some(2));
assert_eq!(peeper.next(), Some(3));
asserteq!(peeper.peep(), None); asserteq!(peeper.next(), None); ```
peepable is licensed under the MIT license.