3 个不稳定版本

0.2.1 2022年1月2日
0.2.0 2021年6月14日
0.1.0 2021年5月2日

2101Rust 模式

Download history • Rust 包仓库 48/week @ 2024-02-26 • Rust 包仓库 38/week @ 2024-03-04 • Rust 包仓库 35/week @ 2024-03-11 • Rust 包仓库 30/week @ 2024-03-18 • Rust 包仓库 51/week @ 2024-03-25 • Rust 包仓库 90/week @ 2024-04-01 • Rust 包仓库 33/week @ 2024-04-08 • Rust 包仓库 31/week @ 2024-04-15 • Rust 包仓库 23/week @ 2024-04-22 • Rust 包仓库 22/week @ 2024-04-29 • Rust 包仓库 25/week @ 2024-05-06 • Rust 包仓库 37/week @ 2024-05-13 • Rust 包仓库 36/week @ 2024-05-20 • Rust 包仓库 24/week @ 2024-05-27 • Rust 包仓库 31/week @ 2024-06-03 • Rust 包仓库 34/week @ 2024-06-10 • Rust 包仓库

每月下载 132
用于 6 个crate(4个直接使用)

MIT 许可证

26KB
724

iterator-ext:扩展 Rust 的 Iterator 特例。

使用方法

该crate提供了IteratorExt特例,它扩展了实现了Iterator的类型的 capability。它提供了类似于Iterator的更多易出错的适配器,如try_filter()try_flatten()

示例演示了适配器的使用。它累计从0到9的值,并仅保留偶数结果。当累计超过10时,它会引发错误。

use iterator_ext::IteratorExt;
//!
let results: Vec<_> = (0..10)
    .map(Ok)
    .try_scan(0, |acc, val| {
        *acc += val;
        if *acc <= 10 {
            Ok(Some(*acc))
        } else {
            Err("exceed limit")
        }
    })
    .try_filter(|val| Ok(val % 2 == 0))
    .collect();
//!
assert_eq!(results, vec![Ok(0), Ok(6), Ok(10), Err("exceed limit")]);

许可证

MIT 许可证。请参阅LICENSE.txt文件。


lib.rs:

Iterator 特例扩展。

IteratorExt特例扩展了实现了Iterator的类型的 capability。它提供了类似于Iterator的更多易出错的适配器,如try_filter()try_flatten()

示例演示了适配器的使用。它累计从0到9的值,并仅保留偶数结果。当累计超过10时,它会引发错误。

use iterator_ext::IteratorExt;

let results: Vec<_> = (0..10)
    .map(Ok)
    .try_scan(0, |acc, val| {
        *acc += val;
        if *acc <= 10 {
            Ok(Some(*acc))
        } else {
            Err("exceed limit")
        }
    })
    .try_filter(|val| Ok(val % 2 == 0))
    .collect();

assert_eq!(results, vec![Ok(0), Ok(6), Ok(10), Err("exceed limit")]);

无运行时依赖