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>()
);