Crate itertools[−][src]
Expand description
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 */ }
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,joinand many more). 
Rust Version
This version of itertools requires Rust 1.32 or later.
Re-exports
pub use crate::structs::*; | 
Modules
| structs | The concrete iterator types.  | 
| traits | Traits helpful for using certain   | 
Macros
| iproduct | Create an iterator over the “cartesian product” of iterators.  | 
| izip | Create an iterator running multiple iterators in lockstep.  | 
Enums
| Diff | A type returned by the   | 
| Either | The enum   | 
| EitherOrBoth | Value that either holds a single A or B, or both.  | 
| FoldWhile | An enum used for controlling the execution of   | 
| MinMaxResult | 
  | 
| Position | A value yielded by   | 
Traits
| Itertools | An   | 
| PeekingNext | An iterator that allows peeking at an element before deciding to accept it.  | 
Functions
| all | Test whether the predicate holds for all elements in the iterable.  | 
| any | Test whether the predicate holds for any elements in the iterable.  | 
| assert_equal | Assert that two iterables produce equal sequences, with the same semantics as equal(a, b).  | 
| chain | Create an iterator that first iterates   | 
| cloned | Create an iterator that clones each element from &T to T  | 
| concat | Combine all an iterator’s elements into one element by using   | 
| cons_tuples | Create an iterator that maps for example iterators of
  | 
| diff_with | Compares every element yielded by both   | 
| enumerate | Iterate   | 
| equal | Return   | 
| fold | Perform a fold operation over the iterable.  | 
| interleave | Create an iterator that interleaves elements in   | 
| iterate | Creates a new iterator that infinitely applies function to value and yields results.  | 
| join | Combine all iterator elements into one String, seperated by   | 
| kmerge | Create an iterator that merges elements of the contained iterators using the ordering function.  | 
| kmerge_by | Create an iterator that merges elements of the contained iterators.  | 
| max | Return the maximum value of the iterable.  | 
| merge | Create an iterator that merges elements in   | 
| merge_join_by | Return an iterator adaptor that merge-joins items from the two base iterators in ascending order.  | 
| min | Return the minimum value of the iterable.  | 
| multipeek | An iterator adaptor that allows the user to peek at multiple   | 
| multizip | An iterator that generalizes .zip() and allows running multiple iterators in lockstep.  | 
| partition | Partition a sequence using predicate   | 
| process_results | “Lift” a function of the values of an iterator so that it can process
an iterator of   | 
| put_back | Create an iterator where you can put back a single item  | 
| put_back_n | Create an iterator where you can put back multiple values to the front of the iteration.  | 
| rciter | Return an iterator inside a   | 
| repeat_call | Deprecated An iterator source that produces elements indefinitely by calling a given closure.  | 
| repeat_n | Create an iterator that produces   | 
| rev | Iterate   | 
| sorted | Sort all iterator elements into a new iterator in ascending order.  | 
| unfold | Creates a new unfold source with the specified closure as the “iterator function” and an initial state to eventually pass to the closure  | 
| zip | Iterate   | 
| zip_eq | Iterate   |