Crate itermore

Source
Expand description

🤸‍♀️ More iterator adaptors.

This crate provides some useful iterator adaptors and functions. 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 --features full

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. For example if you only want the array_combinations adaptor you would add the following to your Cargo manifest.

[dependencies]
itermore = { version = "*", features = ["array_combinations"]}

§Provided functionality

§Methods

  • collect_array: Collects an iterator into an array.
  • min_max and friends: Returns the minimum and maximum element of an iterator.
  • next_chunk: Returns the next N elements of the iterator as an array.
  • sorted and friends: Returns a new iterator with all elements sorted.

§Adaptors

  • array_chunks returns an iterator over N elements of the iterator at a time.
  • array_windows returns an iterator over all contiguous windows of length N.
  • array_combinations returns an iterator over K length combinations of all the elements in the underlying iterator.
  • array_combinations_with_reps returns an iterator over K length combinations with repetitions/replacements of all the elements in the underlying iterator.
  • cartesian_product returns an iterator over the cartesian product of the element sets of two iterators.
  • circular_array_windows returns an iterator over all contiguous windows of length N that wraps around at the end.
  • combinations returns an iterator over k length combinations of all the elements in the underlying iterator.
  • combinations_with_reps returns an iterator over k length combinations with repetitions/replacements of all the elements in the underlying iterator.

Modules§

prelude
Re-exports all iterator extension traits.

Macros§

cartesian_product
Returns an iterator over the cartesian product of the element sets of multiple iterators (up to 12).

Structs§

ArrayChunksarray_chunks
An iterator over N elements of the iterator at a time.
ArrayCombinationsarray_combinations
An iterator that iterates over K length combinations of all the elements in the underlying iterator.
ArrayCombinationsWithRepsarray_combinations_with_reps
An iterator that iterates over K length combinations with repetitions/replacements of all the elements in the underlying iterator.
ArrayWindowsarray_windows
An iterator over all contiguous windows of length N.
CartesianProductcartesian_product
An iterator over the cartesian product of the element sets of two iterators I and J.
CircularArrayWindowscircular_array_windows
An iterator over all contiguous windows of length N wrapping back to the first elements when the window would otherwise exceed the length of the iterator.
Combinationscombinations
An iterator that iterates over k length combinations of all the elements in the underlying iterator.
CombinationsWithRepscombinations_with_reps
An iterator that iterates over K length combinations with repetitions/replacements of all the elements in the underlying iterator.

Traits§

IterArrayChunksarray_chunks
An extension trait that provides the array_chunks method for iterators.
IterArrayCombinationsarray_combinations
An extension trait that provides the array_combinations method for iterators.
IterArrayCombinationsWithRepsarray_combinations_with_reps
An extension trait that provides the array_combinations_with_reps method for iterators.
IterArrayWindowsarray_windows
An extension trait that provides the array_windows method for iterators.
IterCartesianProductcartesian_product
An extension trait that provides the cartesian_product method for iterators.
IterCircularArrayWindowscircular_array_windows
IterCollectArraycollect_array
An extension trait that provides the collect_array method for iterators.
IterCombinationscombinations
An extension trait that provides the combinations method for iterators.
IterCombinationsWithRepscombinations_with_reps
An extension trait that provides the combinations_with_reps method for iterators.
IterMinMaxmin_max
An extension trait that provides the min_max method and friends for iterators.
IterNextChunknext_chunk
An extension trait that provides the next_chunk method for iterators.
IterSortedsorted
An extension trait that provides the sorted method and friends for iterators.