An iterator adapter that returns the equivalent of (iter.next(), iter.peek())
.
Add a dependency to your Cargo.toml
.
toml
[dependencies]
precog_iter = "0.5"
Then use the trait in your main.rs
or lib.rs
file.
rust
use precog_iter::Precognition;
```rust use precog_iter::Precognition;
let mut iter = "ABAC".chars() .precog() .filter_map(|(codepoint, next)| { // Remove codepoint if followed by 'C'. match next { Some(n) if n == 'C' => { None } _ => Some(codepoint) } };
asserteq!(iter.next(), Some('A')); asserteq!(iter.next(), Some('B')); // The second 'A' has been filtered asserteq!(iter.next(), Some('C')); asserteq!(iter.next(), None); ```
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.