Module indigo::iter[][src]

Iterator utilities.

Modules

__std_iter

Composable external iteration.

structs

The concrete iterator types.

traits

Traits helpful for using certain Itertools methods in generic contexts.

Macros

iproduct

Create an iterator over the “cartesian product” of iterators.

izip

Create an iterator running multiple iterators in lockstep.

Structs

Batching

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.

Chunk

An iterator for the elements in a single chunk.

Chunks

An iterator that yields the Chunk iterators.

Coalesce

An iterator adaptor that may join together adjacent elements.

Combinations

An iterator to iterate through all the k-length combinations in an iterator.

CombinationsWithReplacement

An iterator to iterate through all the n-length combinations in an iterator, with replacement.

ConsTuples

An iterator that maps an iterator of tuples like ((A, B), C) to an iterator of (A, B, C).

DedupBy

An iterator adaptor that removes repeated duplicates, determining equality using a comparison function.

Group

An iterator for the elements in a single group.

GroupBy

GroupBy is the storage for the lazy grouping operation.

Groups

An iterator that yields the Group iterators.

Interleave

An iterator adaptor that alternates elements from two iterators until both run out.

InterleaveShortest

An iterator adaptor that alternates elements from the two iterators until one of them runs out.

IntersperseExperimental

An iterator adapter that places a separator between all elements.

IntersperseWithExperimental

An iterator adapter that places a separator between all elements.

IntoChunks

ChunkLazy is the storage for a lazy chunking operation.

KMergeBy

An iterator adaptor that merges an abitrary number of base iterators according to an ordering function.

MapInto

An iterator adapter to apply Into conversion to each element.

MapResults

An iterator adapter to apply a transformation within a nested Result.

MapWhileExperimental

An iterator that only accepts elements while predicate returns Some(_).

Chain

An iterator that links two iterators together, in a chain.

Cloned

An iterator that clones the elements of an underlying iterator.

Copied

An iterator that copies the elements of an underlying iterator.

Cycle

An iterator that repeats endlessly.

Empty

An iterator that yields nothing.

Enumerate

An iterator that yields the current count and the element during iteration.

ExactlyOneError

Iterator returned for the error case of IterTools::exactly_one() This iterator yields exactly the same elements as the input iterator.

Filter

An iterator that filters the elements of iter with predicate.

FilterMap

An iterator that uses f to both filter and map elements from iter.

FlatMap

An iterator that maps each element to an iterator, and yields the elements of the produced iterators.

Flatten

An iterator that flattens one level of nesting in an iterator of things that can be turned into iterators.

Format

Format all iterator elements lazily, separated by sep.

FormatWith

Format all iterator elements lazily, separated by sep.

FromFn

An iterator where each iteration calls the provided closure F: FnMut() -> Option<T>.

Fuse

An iterator that yields None forever after the underlying iterator yields None once.

Inspect

An iterator that calls a function with a reference to each element before yielding it.

Intersperse

An iterator adaptor to insert a particular value between each element of the adapted iterator.

Iterate

An iterator that infinitely applies function to value and yields results.

Map

An iterator that maps the values of iter with f.

MergeBy

An iterator adaptor that merges the two base iterators in ascending order. If both base iterators are sorted (ascending), the result is sorted.

MergeJoinBy

An iterator adaptor that merge-joins items from the two base iterators in ascending order.

MultiPeek

See multipeek() for more information.

MultiProduct

An iterator adaptor that iterates over the cartesian product of multiple iterators of type I.

Once

An iterator that yields an element exactly once.

OnceWith

An iterator that yields a single element of type A by applying the provided closure F: FnOnce() -> A.

PadUsing

An iterator adaptor that pads a sequence to a minimum length by filling missing elements using a closure.

Peekable

An iterator with a peek() that returns an optional reference to the next element.

PeekingTakeWhile

An iterator adaptor that takes items while a closure returns true.

Permutations

An iterator adaptor that iterates through all the k-permutations of the elements from an iterator.

Positions

An iterator adapter to get the positions of each element that matches a predicate.

ProcessResults

An iterator that produces only the T values as long as the inner iterator produces Ok(T).

Product

An iterator adaptor that iterates over the cartesian product of the element sets of two iterators I and J.

PutBack

An iterator adaptor that allows putting back a single item to the front of the iterator.

PutBackN

An iterator adaptor that allows putting multiple items in front of the iterator.

RcIter

A wrapper for Rc<RefCell<I>>, that implements the Iterator trait.

Repeat

An iterator that repeats an element endlessly.

RepeatCallDeprecated

See repeat_call for more information.

RepeatN

An iterator that produces n repetitions of an element.

RepeatWith

An iterator that repeats elements of type A endlessly by applying the provided closure F: FnMut() -> A.

Rev

A double-ended iterator with the direction inverted.

Scan

An iterator to maintain state while iterating another iterator.

Skip

An iterator that skips over n elements of iter.

SkipWhile

An iterator that rejects elements while predicate returns true.

StepDeprecated

An iterator adaptor that steps a number elements in the base iterator for each iteration.

StepBy

An iterator for stepping iterators by a custom amount.

Successors

An new iterator where each successive item is computed based on the preceding one.

Take

An iterator that only iterates over the first n iterations of iter.

TakeWhile

An iterator that only accepts elements while predicate returns true.

TakeWhileRef

An iterator adaptor that borrows from a Clone-able iterator to only pick off elements while the predicate returns true.

Tee

One half of an iterator pair where both return the same elements.

TupleBuffer

An iterator over a incomplete tuple.

TupleCombinations

An iterator to iterate through all combinations in a Clone-able iterator that produces tuples of a specific size.

TupleWindows

An iterator over all contiguous windows that produces tuples of a specific size.

Tuples

An iterator that groups the items in tuples of a specific size.

Unfold

See unfold for more information.

Unique

An iterator adapter to filter out duplicate elements.

UniqueBy

An iterator adapter to filter out duplicate elements.

Update

An iterator adapter to apply a mutating function to each element before yielding it.

WhileSome

An iterator adaptor that filters Option<A> iterator elements and produces A. Stops on the first None encountered.

WithPosition

An iterator adaptor that wraps each element in an Position.

Zip

See multizip for more information.

Zip

An iterator that iterates two other iterators simultaneously.

ZipEq

An iterator which iterates two other iterators simultaneously

ZipLongest

An iterator which iterates two other iterators simultaneously

Enums

Diff

A type returned by the diff_with function.

Either

The enum Either with variants Left and Right is a general purpose sum type with two cases.

EitherOrBoth

Value that either holds a single A or B, or both.

FoldWhile

An enum used for controlling the execution of .fold_while().

MinMaxResult

MinMaxResult is an enum returned by minmax. See Itertools::minmax() for more detail.

Position

A value yielded by WithPosition. Indicates the position of this element in the iterator results.

Traits

InPlaceIterableExperimental

An iterator that when yielding an item will have taken at least one element from its underlying SourceIter.

Itertools

An Iterator blanket implementation that provides extra adaptors and methods.

PeekingNext

An iterator that allows peeking at an element before deciding to accept it.

SourceIterExperimental

This trait provides transitive access to source-stage in an interator-adapter pipeline under the conditions that

StepExperimental

Objects that have a notion of successor and predecessor operations.

TrustedLenExperimental

An iterator that reports an accurate length using size_hint.

DoubleEndedIterator

An iterator able to yield elements from both ends.

ExactSizeIterator

An iterator that knows its exact length.

Extend

Extend a collection with the contents of an iterator.

FromIterator

Conversion from an Iterator.

FusedIterator

An iterator that always continues to yield None when exhausted.

IntoIterator

Conversion into an Iterator.

Iterator

An interface for dealing with iterators.

Product

Trait to represent types that can be created by multiplying elements of an iterator.

Sum

Trait to represent types that can be created by summing up an iterator.

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 i and then j.

cloned

Create an iterator that clones each element from &T to T

concat

Combine all an iterator's elements into one element by using Extend.

cons_tuples

Create an iterator that maps for example iterators of ((A, B), C) to (A, B, C).

diff_with

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.

empty

Creates an iterator that yields nothing.

enumerate

Iterate iterable with a running index.

equal

Return true if both iterables produce equal sequences (elements pairwise equal and sequences of the same length), false otherwise.

fold

Perform a fold operation over the iterable.

from_fn

Creates a new iterator where each iteration calls the provided closure F: FnMut() -> Option<T>.

interleave

Create an iterator that interleaves elements in i and j.

iterate

Creates a new iterator that infinitely applies function to value and yields results.

join

Combine all iterator elements into one String, seperated by sep.

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 i and j.

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 .next() values without advancing the base iterator.

multizip

An iterator that generalizes .zip() and allows running multiple iterators in lockstep.

once

Creates an iterator that yields an element exactly once.

once_with

Creates an iterator that lazily generates a value exactly once by invoking the provided closure.

partition

Partition a sequence using predicate pred so that elements that map to true are placed before elements which map to false.

process_results

“Lift” a function of the values of an iterator so that it can process an iterator of Result values instead.

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 Rc<RefCell<_>> wrapper.

repeat

Creates a new iterator that endlessly repeats a single element.

repeat_callDeprecated

An iterator source that produces elements indefinitely by calling a given closure.

repeat_n

Create an iterator that produces n repetitions of element.

repeat_with

Creates a new iterator that repeats elements of type A endlessly by applying the provided closure, the repeater, F: FnMut() -> A.

rev

Iterate iterable in reverse.

sorted

Sort all iterator elements into a new iterator in ascending order.

successors

Creates a new iterator where each successive item is computed based on the preceding one.

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 i and j in lock step.

zip_eq

Iterate i and j in lock step.

Type Definitions

Dedup

An iterator adaptor that removes repeated duplicates.

KMerge

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.

Merge

An iterator adaptor that merges the two base iterators in ascending order. If both base iterators are sorted (ascending), the result is sorted.