# peepable
[](https://crates.io/crates/peepable) [](https://travis-ci.org/brendanashworth/peepable) [](https://docs.rs/peepable)
peepable is a Rust look-alike for [`Peekable`](https://doc.rust-lang.org/std/iter/struct.Peekable.html).
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.
## Example
```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));
assert_eq!(peeper.peep(), Some(&2));
assert_eq!(peeper.next(), Some(2));
assert_eq!(peeper.next(), Some(3));
assert_eq!(peeper.peep(), None);
assert_eq!(peeper.next(), None);
```
## License
peepable is licensed under the [MIT license](./LICENSE).