Crate tract_onnx::prelude::tract_data::prelude::tract_itertools

source ·
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 (like group_by, unique, kmerge, join and many more).

§Rust Version

This version of itertools requires Rust 1.43.1 or later.

Modules§

  • Composable external iteration.
  • The concrete iterator types.
  • Traits helpful for using certain Itertools methods in generic contexts.

Macros§

  • Chain zero or more iterators together into one sequence.
  • Create an iterator over the “cartesian product” of iterators.
  • Create an iterator running multiple iterators in lockstep.

Structs§

  • A “meta iterator adaptor”. Its closure receives a reference to the iterator and may pick off as many elements as it likes, to produce the next iterator element.
  • An iterator for the elements in a single chunk.
  • An iterator that yields the Chunk iterators.
  • An iterator over all windows, wrapping back to the first elements when the window would otherwise exceed the length of the iterator, producing tuples of a specific size.
  • An iterator to iterate through all the k-length combinations in an iterator.
  • An iterator to iterate through all the n-length combinations in an iterator, with replacement.
  • An iterator that maps an iterator of tuples like ((A, B), C) to an iterator of (A, B, C).
  • Iterator returned for the error case of Itertools::exactly_one() This iterator yields exactly the same elements as the input iterator.
  • An iterator adapter to filter and apply a transformation on values within a nested Result::Ok.
  • An iterator adapter to filter values within a nested Result::Ok.
  • An iterator adaptor that flattens Result::Ok values and allows Result::Err values through unchanged.
  • Format all iterator elements lazily, separated by sep.
  • Format all iterator elements lazily, separated by sep.
  • An iterator for the elements in a single group.
  • GroupBy is the storage for the lazy grouping operation.
  • GroupingMap is an intermediate struct for efficient group-and-fold operations. It groups elements by their key and at the same time fold each group using some aggregating operation.
  • An iterator that yields the Group iterators.
  • An iterator adaptor that alternates elements from two iterators until both run out.
  • An iterator adaptor that alternates elements from the two iterators until one of them runs out.
  • An iterator adaptor to insert a particular value created by a function between each element of the adapted iterator.
  • ChunkLazy is the storage for a lazy chunking operation.
  • An iterator that infinitely applies function to value and yields results.
  • An iterator adaptor that merges an abitrary number of base iterators according to an ordering function.
  • An iterator adaptor that merges the two base iterators in ascending order. If both base iterators are sorted (ascending), the result is sorted.
  • See multipeek() for more information.
  • An iterator adaptor that iterates over the cartesian product of multiple iterators of type I.
  • An iterator adaptor that pads a sequence to a minimum length by filling missing elements using a closure.
  • See peek_nth() for more information.
  • An iterator adaptor that takes items while a closure returns true.
  • An iterator adaptor that iterates through all the k-permutations of the elements from an iterator.
  • An iterator adapter to get the positions of each element that matches a predicate.
  • An iterator to iterate through the powerset of the elements from an iterator.
  • An iterator that produces only the T values as long as the inner iterator produces Ok(T).
  • An iterator adaptor that iterates over the cartesian product of the element sets of two iterators I and J.
  • An iterator adaptor that allows putting back a single item to the front of the iterator.
  • An iterator adaptor that allows putting multiple items in front of the iterator.
  • A wrapper for Rc<RefCell<I>>, that implements the Iterator trait.
  • RepeatCallDeprecated
    See repeat_call for more information.
  • An iterator that produces n repetitions of an element.
  • StepDeprecated
    An iterator adaptor that steps a number elements in the base iterator for each iteration.
  • An iterator adaptor that consumes elements while the given predicate is true, including the element for which the predicate first returned false.
  • An iterator adaptor that borrows from a Clone-able iterator to only pick off elements while the predicate returns true.
  • One half of an iterator pair where both return the same elements.
  • An iterator over a incomplete tuple.
  • An iterator to iterate through all combinations in a Clone-able iterator that produces tuples of a specific size.
  • An iterator over all contiguous windows that produces tuples of a specific size.
  • An iterator that groups the items in tuples of a specific size.
  • See unfold for more information.
  • An iterator adapter to filter out duplicate elements.
  • An iterator adapter to filter out duplicate elements.
  • An iterator adapter to apply a mutating function to each element before yielding it.
  • An iterator adaptor that filters Option<A> iterator elements and produces A. Stops on the first None encountered.
  • An iterator adaptor that wraps each element in an Position.
  • See multizip for more information.
  • An iterator which iterates two other iterators simultaneously
  • An iterator which iterates two other iterators simultaneously

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§

  • An Iterator blanket implementation that provides extra adaptors and methods.
  • An iterator that can be unzipped into multiple collections.
  • 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.
  • repeat_callDeprecated
    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.
  • Sort all iterator elements into a new iterator in ascending order.
  • Sort all iterator elements into a new iterator in ascending order. This sort is unstable (i.e., may reorder equal elements). IntoIterator enabled version of Itertools::sorted_unstable.
  • Creates a new unfold source with the specified closure as the “iterator function” and an initial state to eventually pass to the closure
  • zipDeprecated
    Converts the arguments to iterators and zips them.
  • Iterate i and j in lock step.

Type Aliases§

  • An iterator adaptor that may join together adjacent elements.
  • An iterator adaptor that removes repeated duplicates.
  • An iterator adaptor that removes repeated duplicates, determining equality using a comparison function.
  • An iterator adaptor that removes repeated duplicates, while keeping a count of how many repeated elements were present. This will determine equality using a comparison function.
  • An iterator adaptor that removes repeated duplicates, while keeping a count of how many repeated elements were present.
  • An iterator adapter to filter out duplicate elements.
  • An iterator adapter to filter for duplicate elements.
  • GroupingMapBy is an intermediate struct for efficient group-and-fold operations.
  • An iterator adaptor to insert a particular value between each element of the adapted iterator.
  • An iterator adaptor that merges an abitrary number of base iterators in ascending order. If all base iterators are sorted (ascending), the result is sorted.
  • An iterator adapter to apply Into conversion to each element.
  • An iterator adapter to apply a transformation within a nested Result::Ok.
  • MapResultsDeprecated
    See MapOk.
  • An iterator adaptor that merges the two base iterators in ascending order. If both base iterators are sorted (ascending), the result is sorted.
  • An iterator adaptor that merge-joins items from the two base iterators in ascending order.