2个版本
使用旧的Rust 2015
0.1.1 | 2017年7月12日 |
---|---|
0.1.0 | 2017年7月8日 |
#1572 在 Rust模式
每月21次下载
在 statical 中使用
10KB
219 代码行
此crate提供了一些迭代器适配器,用于从源迭代器中去除元素重复,灵感来源于Vec中的dedup方法。
dedup
DedupIteratorAdapter
是一个迭代器适配器,用于从源迭代器中去除连续重复的元素。 DedupIteratorAdapter
的 dedup
特征方法返回一个 DedupIterator
。
示例
use dedup_iter::DedupIteratorAdapter;
assert_eq!("abcdefe", "aabbccdddeeeeffffeee".chars().dedup().collect::<String>());
dedup_by
DedupByAdapter
是一个迭代器适配器,使用一个函数来确定相等性,从源迭代器中去除连续重复的元素。 dedup_by
特征方法返回一个 DedupBy
迭代器结构。
示例
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_key
DedupByKeyAdapter
是一个迭代器适配器,使用一个键来确定相等性,从源迭代器中去除连续重复的元素。 dedup_by_key
特征方法返回一个 DedupByKey
迭代器结构。
示例
use dedup_iter::DedupByKeyAdapter;
assert_eq!(
"F I F O",
"First In, First Out".chars()
.dedup_by_key(|a| a.is_whitespace())
.collect::<String>()
);