1 unstable release
new 0.13.0 | Nov 4, 2024 |
---|
#1164 in Rust patterns
440KB
8K
SLoC
Itertools
Extra iterator adaptors, functions and macros.
Please read the API documentation here.
How to use with Cargo:
[dependencies]
itertools = "0.13.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.
lib.rs
:
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_alloc
feature) and hash maps (likeunique
,counts
,into_grouping_map
and more).
use_alloc
- Enabled by default.
- Enables any item that depend on allocations (like
chunk_by
,kmerge
,join
and many more).
Rust Version
This version of itertools requires Rust 1.63.0 or later.