Crate iter_tools
source ·Expand description
Collection of general purpose tools to iterate. Currently it simply reexports itertools.
§Module :: iter_tools
Collection of general purpose tools to iterate. Currently it simply reexports itertools.
§Basic use-case
use iter_tools::*;
/* standard functions */
let vec = vec![ 5, 1, -2 ];
let min = min( &vec );
assert_eq!( *min.unwrap(), -2 );
/* non standard functions */
let vec = vec![ 5, 1, -2 ];
let added = vec![ "a", "b", "c" ];
let mut result = vec![];
let zipped = zip( &vec, &added );
for ( left, right ) in zipped
{
result.push( ( *left, *right ) );
}
assert_eq!( result, vec![ ( 5, "a" ), ( 1, "b" ), ( -2, "c" ) ] );
§To add to your project
cargo add iter_tools
§Try out from the repository
git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/iter_tools_trivial
cargo run
`
§Try out from the repository
git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/iter_tools_trivial
cargo run
Modules§
- Namespace with dependencies.
- Exposed namespace of the module.
- Core module.
- Orphan namespace of the module.
- Prelude to use essentials:
use my_module::prelude::*
. - Protected namespace of the module.
Macros§
- Chain zero or more iterators together into one sequence.
Enums§
- A type returned by the
diff_with
function. - The enum
Either
with variantsLeft
andRight
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 byminmax
.- The first component of the value yielded by
WithPosition
. Indicates the position of this element in the iterator results.
Traits§
- Extension of iterator.
- An
Iterator
blanket implementation that provides extra adaptors and methods. - 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)
. - Takes two iterables and creates a new iterator over both in sequence.
- 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
andj
with the given function in lock-step and returns aDiff
which describes howj
differs fromi
. - 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. - Perform a fold operation over the iterable.
- Create an iterator that interleaves elements in
i
andj
. - Iterate
iterable
with a particular value inserted between each element. - Iterate
iterable
with a particular value created by a function inserted between each element. - Creates a new iterator that infinitely applies function to value and yields results.
- Combine all iterator elements into one String, separated 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
andj
. - 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. - Converts an iterator of tuples into a tuple of containers.
- An iterator that generalizes .zip() and allows running multiple iterators in lockstep.
- Partition a sequence using predicate
pred
so that elements that map totrue
are placed before elements which map tofalse
. - A drop-in replacement for
std::iter::Peekable
which adds apeek_nth
method allowing the user topeek
at a value several iterations forward without advancing the base iterator. - “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. - Create an iterator that produces
n
repetitions ofelement
. - Iterate
iterable
in reverse. - Sort all iterator elements into a new iterator 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
- Converts the arguments to iterators and zips them.
- Iterate
i
andj
in lock step.