#iterator-adapter #iterator #dedup

dedup_iter

去除重复元素的迭代器适配器

2个版本

使用旧的Rust 2015

0.1.1 2017年7月12日
0.1.0 2017年7月8日

#1572Rust模式

每月21次下载
statical 中使用

MIT 许可证

10KB
219 代码行

Build Status

此crate提供了一些迭代器适配器,用于从源迭代器中去除元素重复,灵感来源于Vec中的dedup方法。

dedup

DedupIteratorAdapter 是一个迭代器适配器,用于从源迭代器中去除连续重复的元素。 DedupIteratorAdapterdedup 特征方法返回一个 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>()
);

无运行时依赖