Crate iter_tools

source ·
Expand description

Collection of general purpose tools to iterate. Currently it simply reexports itertools.

§Module :: iter_tools

experimentalrust-statusdocs.rsOpen in Gitpod discord

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 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.
  • 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 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.
  • Perform a fold operation over the iterable.
  • Create an iterator that interleaves elements in i and j.
  • 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 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.
  • 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 to true are placed before elements which map to false.
  • A drop-in replacement for std::iter::Peekable which adds a peek_nth method allowing the user to peek 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 of element.
  • 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 and j in lock step.