Skip to content

A Rust look-alike for Peekable that allows peeping into immutable references.

License

Notifications You must be signed in to change notification settings

brendanashworth/peepable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

peepable

Crates.io Build Status docs.rs

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.

Example

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.

About

A Rust look-alike for Peekable that allows peeping into immutable references.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages