#iterator #filter #optional

iter-opt-filter

为迭代器添加可选过滤器

1 个不稳定版本

0.1.0 2021年5月24日

#2050Rust模式

MIT 协议

19KB
407

iter-opt-filter ── 最新版本 文档

此crate为迭代器添加可选过滤器。它试图解决的问题是可以在运行时启用/禁用多个过滤器的组合。

示例

use iter_opt_filter::IteratorOptionalFilterExt;

let mut iter = (0..3)
    .optional_filter(Some(|&item: &usize| item % 2 == 0))
    .optional_filter(None::<fn(&usize) -> bool>)
    .optional_filter(Some(|&item: &usize| item > 1));

assert_eq!(iter.next(), Some(2));
assert_eq!(iter.next(), None);

lib.rs:

此库通过[IteratorOptionalFilterExt]扩展特质为所有[迭代器][Iterator]提供optional_filter

optional_filter接受一个Option<fn(&item) -> bool>,这使得条件过滤变得容易。然而,与正常的filter或内部[迭代器]本身相比,这会带来性能成本。但它通常比Box<dyn Iterator>快。

请参阅optional_filter方法的示例。

无运行时依赖