6 releases (breaking)
0.5.0 | Dec 4, 2022 |
---|---|
0.4.0 | Dec 1, 2022 |
0.3.1 | Nov 29, 2022 |
0.2.0 | Dec 19, 2021 |
0.1.0 | Oct 6, 2021 |
#519 in Algorithms
238 downloads per month
Used in plateau
29KB
334 lines
itermore
π€ΈββοΈ More iterator adaptors.
This crate provides some useful iterator adaptors like array_chunks
and
array_windows
. Unlike itertools
this
crate provides a separate extension trait for each adaptor. Additionally,
each type of adaptor is feature flagged so you only have to compile the
features you need.
Getting started
Add the crate to Cargo manifest.
cargo add itermore
And bring the extension traits into scope.
use itermore::prelude::*;
Now you can use extension methods like array_windows
on any iterator.
for [a, b, c] in iter.array_windows() {
println!("{} {} {}", a, b, c)
}
// Outputs
// 1 2 3
// 2 3 4
// 3 4 5
It is recommended to only enable the features that you need, you can do this
by disabling all features and turning on the ones you want. For example if
you only want the array_combinations
adaptor you would add the following
to your Cargo manifest.
[dependencies]
itermore = { version = "*", default-features = false, features = ["array_combinations"]}
Provided functionality
Methods
next_chunk
: Returns the nextN
elements of the iterator as an array.sorted
and friends: Returns a new iterator with all elements sorted.
Adaptors
array_chunks
returns an iterator overN
elements of the iterator at a time.array_windows
returns an iterator over all contiguous windows of length `N.array_combinations
returns an iterator overK
length combinations of all the elements in the underlying iterator.array_combinations_with_reps
returns an iterator overK
length combinations with repetitions/replacements of all the elements in the underlying iterator.
License
This project is distributed under the terms of both the MIT license and the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.