Expand description
Itertools — extra iterator adaptors, functions and macros.
To use the iterator methods in this crate, import the Itertools
trait:
use itertools::Itertools;
Crate Features
use_std
- Enabled by default.
- Disable to compile itertools using
#![no_std]
. This disables any items that depend on collections (likegroup_by
,unique
,kmerge
,join
and many more).
Rust Version
This version of itertools requires Rust 1.12 or later.
Re-exports
pub use structs::*;
Modules
The concrete iterator types.
Macros
Create an iterator over the “cartesian product” of iterators.
Create an iterator running multiple iterators in lockstep.
Enums
The enum
Either
with variants Left
and Right
is a general purpose
sum type with two cases.Value that either holds a single A or B, or both.
An enum used for controlling the execution of
.fold_while()
.MinMaxResult
is an enum returned by minmax
. See Itertools::minmax()
for
more detail.A value yielded by
WithPosition
.
Indicates the position of this element in the iterator results.Traits
The trait
Itertools
: extra iterator adaptors and methods for iterators.An iterator that allows peeking at an element before deciding to accept it.
Functions
Test whether the predicate holds for all elements in the iterable.
Test whether the predicate holds for any elements in the iterable.
Assert that two iterables produce equal sequences, with the same
semantics as equal(a, b).
Create an iterator that first iterates
i
and then j
.Create an iterator that clones each element from &T to T
Combine all an iterator’s elements into one element by using
Extend
.Create an iterator that maps for example iterators of
((A, B), C)
to (A, B, C)
.Compares every element yielded by both
i
and j
with the given function in lock-step and
returns a Diff
which describes how j
differs from i
.Iterate
iterable
with a running index.Return
true
if both iterables produce equal sequences
(elements pairwise equal and sequences of the same length),
false
otherwise.Flatten an iterable of iterables into a single combined sequence of all
the elements in the iterables.
Perform a fold operation over the iterable.
Create an iterator that interleaves elements in
i
and j
.Creates a new iterator that infinitely applies function to value and yields results.
Combine all iterator elements into one String, seperated by
sep
.Create an iterator that merges elements of the contained iterators using
the ordering function.
Create an iterator that merges elements of the contained iterators.
Return the maximum value of the iterable.
Create an iterator that merges elements in
i
and j
.Return an iterator adaptor that merge-joins items from the two base iterators in ascending order.
Return the minimum value of the iterable.
An iterator adaptor that allows the user to peek at multiple
.next()
values without advancing the base iterator.An iterator that generalizes .zip() and allows running multiple iterators in lockstep.
Partition a sequence using predicate
pred
so that elements
that map to true
are placed before elements which map to false
.“Lift” a function of the values of an iterator so that it can process
an iterator of
Result
values instead.Create an iterator where you can put back a single item
Create an iterator where you can put back multiple values to the front
of the iteration.
Return an iterator inside a
Rc<RefCell<_>>
wrapper.An iterator source that produces elements indefinitely by calling
a given closure.
Create an iterator that produces
n
repetitions of element
.Iterate
iterable
in reverse.Collect all the iterable’s elements into a sorted vector in ascending order.
Creates a new unfold source with the specified closure as the “iterator
function” and an initial state to eventually pass to the closure
Iterate
i
and j
in lock step.Iterate
i
and j
in lock step.