#迭代器 #产品 #zip #数据结构 #无分配

无std itertools

额外的迭代器适配器、迭代器方法、自由函数和宏

129次发布

0.13.0 2024年5月16日
0.12.1 2024年1月29日
0.12.0 2023年11月14日
0.11.0 2023年6月22日
0.0.3 2014年11月29日

#4 in Rust模式

Download history 3049595/week @ 2024-05-02 2990587/week @ 2024-05-09 3164613/week @ 2024-05-16 3060803/week @ 2024-05-23 3317066/week @ 2024-05-30 3381277/week @ 2024-06-06 3499723/week @ 2024-06-13 3443608/week @ 2024-06-20 3496654/week @ 2024-06-27 3247347/week @ 2024-07-04 3527383/week @ 2024-07-11 3709471/week @ 2024-07-18 3859416/week @ 2024-07-25 4012775/week @ 2024-08-01 4262004/week @ 2024-08-08 4244994/week @ 2024-08-15

17,121,116 每月下载量
24,362 个crate中使用 (5,878 直接使用)

MIT/Apache

420KB
8K SLoC

Itertools

额外的迭代器适配器、函数和宏。

请在此处阅读API文档

如何与Cargo一起使用

[dependencies]
itertools = "0.13.0"

如何在您的crate中使用

use itertools::Itertools;

如何贡献

如果您不确定要做什么,请尝试检查 需要帮助 标签。

请参阅我们的 CONTRIBUTING.md 以获取详细指南。

许可

双许可以与Rust项目兼容。

在您的选择下,根据Apache许可证2.0版本 https://www.apache.org/licenses/LICENSE-2.0 或MIT许可证 https://opensource.org/licenses/MIT 许可,此文件可能无法复制、修改或分发,除非符合那些条款。


lib.rs:

额外的迭代器适配器、函数和宏。

要使用此crate中的方法扩展Iterator,导入Itertools trait

use itertools::Itertools;

现在,所有迭代器都可用新方法,如 interleave

use itertools::Itertools;

let it = (1..3).interleave(vec![-1, -2]);
itertools::assert_equal(it, vec![1, -1, 2, -2]);

大多数迭代器方法也作为函数提供(好处是它们使用 IntoIterator 转换参数)

use itertools::interleave;

for elt in interleave(&[1, 2, 3], &[2, 3, 4]) {
    /* loop body */
}

crate功能

  • use_std
    • 默认启用。
    • 禁用以使用#![no_std]编译itertools。这将禁用所有依赖于分配(请参阅use_alloc功能)和散列映射(如uniquecountsinto_grouping_map等)的项目。
  • use_alloc
    • 默认启用。
    • 启用所有依赖分配的项目(如 chunk_bykmergejoin 以及更多)。

Rust 版本

本版本的 itertools 需要 Rust 1.43.1 或更高版本。

依赖项