| Crates.io | dedup_iter |
| lib.rs | dedup_iter |
| version | 0.1.1 |
| created_at | 2017-07-08 09:58:49.203197+00 |
| updated_at | 2017-07-12 17:24:26.041206+00 |
| description | Deduplicating iterator adapters |
| homepage | |
| repository | https://github.com/aswaving/dedup_iter |
| max_upload_size | |
| id | 22539 |
| size | 11,081 |
This crate provides a couple of iterator adapters for deduplication of elements from a source iterator, inspired by the dedup methods in Vec.
dedupThe DedupIteratorAdapter is an iterator adapter that removes consecutive repeated elements from the source iterator.
The dedup trait method of DedupIteratorAdapter returns a DedupIterator.
use dedup_iter::DedupIteratorAdapter;
assert_eq!("abcdefe", "aabbccdddeeeeffffeee".chars().dedup().collect::<String>());
dedup_byThe DedupByAdapter is an iterator adapter that removes consecutive repeated elements from the source iterator
using a function to determine equality.
The dedup_by trait method returns a DedupBy iterator struct.
use std::ascii::AsciiExt;
use dedup_iter::DedupByAdapter;
assert_eq!(
"This string had way too much redundant whitespace!",
"This string had way too much redundant \n whitespace!".chars()
.dedup_by(|a, b| a.is_whitespace() && b.is_whitespace() )
.collect::<String>()
);
dedup_by_keyThe DedupByKeyAdapter is an iterator adapter that removes consecutive repeated elements from the source iterator
using a key to determine equality.
The dedup_by_key trait method returns a DedupByKey iterator struct.
use dedup_iter::DedupByKeyAdapter;
assert_eq!(
"F I F O",
"First In, First Out".chars()
.dedup_by_key(|a| a.is_whitespace())
.collect::<String>()
);