#iterator #peek #next #iterator-adapter #precog #precognition

已删除 precog_iter

一个迭代器适配器,返回等价的 (iter.next(), iter.peek())

0.5.3 2019年6月4日
0.5.2 2019年6月4日
0.5.1 2019年6月4日
0.5.0 2019年6月4日

#24 in #iterator-adapter

MIT/Apache

9KB
71

precog_iter

Crates.io Docs.rs License: MIT/Apache-2.0 Build status

一个迭代器适配器,返回等价的 (iter.next(), iter.peek())

安装

在您的 Cargo.toml 中添加依赖。

[dependencies]
precog_iter = "0.5"

然后在您的 main.rslib.rs 文件中使用此特性。

use precog_iter::Precognition;

用法

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

assert_eq!(iter.next(), Some('A'));
assert_eq!(iter.next(), Some('B'));
// The second 'A' has been filtered
assert_eq!(iter.next(), Some('C'));
assert_eq!(iter.next(), None);

许可证

许可协议为以下之一:

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献都应按照上述方式双许可,不附加任何额外的条款或条件。

无运行时依赖