130 releases
| 0.14.0 | Dec 31, 2024 |
|---|---|
| 0.13.0 | May 16, 2024 |
| 0.12.1 | Jan 29, 2024 |
| 0.12.0 | Nov 14, 2023 |
| 0.0.3 | Nov 29, 2014 |
#13 in Rust patterns
20,031,838 downloads per month
Used in 42,039 crates
(7,459 directly)
450KB
9K
SLoC
Extra iterator adaptors, functions and macros.
To extend Iterator with methods in this crate, import
the Itertools trait:
use itertools::Itertools;
Now, new methods like interleave
are available on all iterators:
use itertools::Itertools;
let it = (1..3).interleave(vec![-1, -2]);
itertools::assert_equal(it, vec![1, -1, 2, -2]);
Most iterator methods are also provided as functions (with the benefit
that they convert parameters using IntoIterator):
use itertools::interleave;
for elt in interleave(&[1, 2, 3], &[2, 3, 4]) {
/* loop body */
# let _ = elt;
}
Crate Features
use_std- Enabled by default.
- Disable to compile itertools using
#![no_std]. This disables any item that depend on allocations (see theuse_allocfeature) and hash maps (likeunique,counts,into_grouping_mapand more).
use_alloc- Enabled by default.
- Enables any item that depend on allocations (like
chunk_by,kmerge,joinand many more).
Rust Version
This version of itertools requires Rust 1.63.0 or later.
Itertools
Extra iterator adaptors, functions and macros.
Please read the API documentation here.
How to use with Cargo:
[dependencies]
itertools = "0.14.0"
How to use in your crate:
use itertools::Itertools;
How to contribute
If you're not sure what to work on, try checking the help wanted label.
See our CONTRIBUTING.md for a detailed guide.
License
Dual-licensed to be compatible with the Rust project.
Licensed under the Apache License, Version 2.0 https://www.apache.org/licenses/LICENSE-2.0 or the MIT license https://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.