Module prelude Copy item path Source pub use crate::echo ;
pub use crate::echo ;
pub use crate::dijkstra::Dijkstra ;
pub use crate::union_find::UnionFind ;
pub use crate::constants ::*;
pub use crate::echo ::*;
pub use crate::modulo ::*;
pub use crate::prime ::*;
pub use crate::total_ord ::*;
pub use crate::utils ::*;
__std_iter Composable external iteration. bigint binary_heap A priority queue implemented with a binary heap. btree_map An ordered map based on a B-Tree. btree_set An ordered set based on a B-Tree. cast complex hash_map A hash map implemented with quadratic probing and SIMD lookup. hash_set A hash set implemented as a HashMap
where the value is ()
. integer iter linked_list A doubly-linked list with owned nodes. marker Declares special marker types. pow rational source Defines whitespace-splitted token stream wrapping actual stream like stdin. vec_deque A double-ended queue (deque) implemented with a growable ring buffer. btreemap Create a BTreeMap from a list of key-value pairs btreeset Create a BTreeSet from a list of elements. convert_args Macro that converts the keys or key-value pairs passed to another maplit
macro. The default conversion is to use the Into
trait, if no
custom conversion is passed. echo hashmap Create a HashMap from a list of key-value pairs hashset Create a HashSet from a list of elements. input read input from stdin. input_interactive read input from stdin interactively. iproduct Create an iterator over the “cartesian product” of iterators. izip Create an iterator running multiple iterators in lockstep. BTreeMap An ordered map based on a B-Tree . BTreeSet An ordered set based on a B-Tree. 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. BigInt A big signed integer type. BigUint A big unsigned integer type. BinaryHeap A priority queue implemented with a binary heap. 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. Complex A complex number in Cartesian form. 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. ExactlyOneError Iterator returned for the error case of IterTools::exactly_one()
This iterator yields exactly the same elements as the input iterator. ExtendedGcd Greatest common divisor and Bézout coefficients Format Format all iterator elements lazily, separated by sep
. FormatWith Format all iterator elements lazily, separated by sep
. 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. HashMap A hash map implemented with quadratic probing and SIMD lookup. HashSet A hash set implemented as a HashMap
where the value is ()
. 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. Intersperse An iterator adaptor to insert a particular value
between each element of the adapted iterator. IntoChunks ChunkLazy
is the storage for a lazy chunking operation.IterBinomial An iterator over binomial coefficients. Iterate An iterator that infinitely applies function to value and yields results. KMergeBy An iterator adaptor that merges an abitrary number of base iterators
according to an ordering function. LinkedList A doubly-linked list with owned nodes. Linspace An iterator of a sequence of evenly spaced floats. MapInto An iterator adapter to apply Into
conversion to each element. MapResults An iterator adapter to apply a transformation within a nested Result
. 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
. PadUsing An iterator adaptor that pads a sequence to a minimum length by filling
missing elements using a closure. 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. RepeatCall Deprecated See repeat_call
for more information. RepeatN An iterator that produces n repetitions of an element. Reverse A helper struct for reverse ordering. Step Deprecated An iterator adaptor that steps a number elements in the base iterator
for each iteration. 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. TryReserveError The error type for try_reserve
methods. 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. VecDeque A double-ended queue implemented with a growable ring buffer. 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. ZipEq An iterator which iterates two other iterators simultaneously ZipLongest An iterator which iterates two other iterators simultaneously Bound An endpoint of a range of keys. Bytes Bytes: read a string as array of bytes. Chars Chars: read a string as array of chars. 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()
. Isize1 Isize1: 1-indexed isize. Output of reading has type isize. MinMaxResult MinMaxResult
is an enum returned by minmax
. See Itertools::minmax()
for
more detail.Ordering An Ordering
is the result of a comparison between two values. Position A value yielded by WithPosition
.
Indicates the position of this element in the iterator results. StdinSource Usize1 Usize1: 1-indexed usize. Output of reading has type usize. TryReserveErrorKind Experimental Details of the allocation that caused a TryReserveError
Average Provides methods to compute the average of two integers, without overflows. Bounded Numbers which have upper and lower bounds CheckedAdd Performs addition that returns None
instead of wrapping around on
overflow. CheckedDiv Performs division that returns None
instead of panicking on division by zero and instead of
wrapping around on underflow and overflow. CheckedMul Performs multiplication that returns None
instead of wrapping around on underflow or
overflow. CheckedSub Performs subtraction that returns None
instead of wrapping around on underflow. Eq Trait for comparisons corresponding to equivalence relations . Float Generic trait for floating point numbers FromPrimitive A generic trait for converting a number to a value. Integer Itertools An Iterator
blanket implementation that provides extra adaptors and
methods. ItertoolsNum Extension trait for iterators: extra adaptors and methods
for numerical iterators Num The base trait for numeric types, covering 0
and 1
values,
comparisons, basic numeric operations, and string conversion. NumCast An interface for casting between machine scalars. One Defines a multiplicative identity element for Self
. Ord Trait for types that form a total order . PartialEq Trait for comparisons using the equality operator. PartialOrd Trait for types that form a partial order . PeekingNext An iterator that allows peeking at an element before deciding to accept it. PrimInt Generic trait for primitive integers. Roots Provides methods to compute an integer’s square root, cube root,
and arbitrary n
th root. Saturating Saturating math operations. Deprecated, use SaturatingAdd
, SaturatingSub
and
SaturatingMul
instead. Signed Useful functions for signed numbers (i.e. numbers that can be negative). ToPrimitive A generic trait for converting a value to a number. Unsigned A trait for values which cannot be negative Zero Defines an additive identity element for Self
. __Readable A trait representing which type can be read from Source
. abs Computes the absolute value. abs_sub The positive difference of two numbers. 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) . average_ceil Returns the ceiling value of the average of x
and y
–
see Average::average_ceil . average_floor Returns the floor value of the average of x
and y
–
see Average::average_floor . binomial Calculate the binomial coefficient. cast Cast from one machine scalar to another. cbrt Returns the truncated principal cube root of an integer –
see Roots::cbrt . chain Create an iterator that first iterates i
and then j
. checked_pow Raises a value to the power of exp, returning None
if an overflow occurred. clamp A value bounded by a minimum and a maximum 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
. div_ceil Ceiled integer division div_floor Floored integer division div_mod_floor Simultaneous floored integer division and modulus div_rem Simultaneous integer division and modulus 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. gcd Calculates the Greatest Common Divisor (GCD) of the number and other
. The
result is always non-negative. gcd_lcm Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
. interleave Create an iterator that interleaves elements in i
and j
. is_stdin_empty Checks if some of tokens are left on stdin. 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. lcm Calculates the Lowest Common Multiple (LCM) of the number and other
. linspace Return an iterator of evenly spaced floats. max_by Returns the maximum of two values with respect to the specified comparison function. max_by_key Returns the element that gives the maximum value from the specified function. 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_by Returns the minimum of two values with respect to the specified comparison function. min_by_key Returns the element that gives the minimum value from the specified function. mod_floor Floored integer modulus multinomial Calculate the multinomial coefficient. 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. nth_root Returns the truncated principal n
th root of an integer –
see Roots::nth_root . one Returns the multiplicative identity, 1
. partition Partition a sequence using predicate pred
so that elements
that map to true
are placed before elements which map to false
. pow Raises a value to the power of exp, using exponentiation by squaring. 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. range Returns an iterator over the given range [start, stop) (that is, starting
at start (inclusive), and ending at stop (exclusive)). range_inclusive Return an iterator over the range [start, stop] range_step Return an iterator over the range [start, stop) by step
. It handles overflow by stopping. range_step_inclusive Return an iterator over the range [start, stop] by step
. It handles overflow by stopping. rciter Return an iterator inside a Rc<RefCell<_>>
wrapper. repeat_call Deprecated An iterator source that produces elements indefinitely by calling
a given closure. repeat_n Create an iterator that produces n
repetitions of element
. rev Iterate iterable
in reverse. signum Returns the sign of the number. sorted Sort all iterator elements into a new iterator in ascending order. sqrt Returns the truncated principal square root of an integer –
see Roots::sqrt . unfold Creates a new unfold source with the specified closure as the “iterator
function” and an initial state to eventually pass to the closure zero Returns the additive identity, 0
. zip Iterate i
and j
in lock step. zip_eq Iterate i
and j
in lock step. minmax Experimental Compares and sorts two values, returning minimum and maximum. minmax_by Experimental Returns minimum and maximum values with respect to the specified comparison function. minmax_by_key Experimental Returns minimum and maximum values with respect to the specified key function. BigRational Alias for arbitrary precision rationals. 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. Rational Alias for a Ratio
of machine-sized integers. derive_readable Derives Readable
for your own type. fastout Enables buffering for stdout. memoise Memoise function by using Vec
memoise_map Memoise function by using BTreeMap
Eq Derive macro generating an impl of the trait Eq
. Ord Derive macro generating an impl of the trait Ord
.
The behavior of this macro is described in detail here . PartialEq Derive macro generating an impl of the trait PartialEq
.
The behavior of this macro is described in detail here . PartialOrd Derive macro generating an impl of the trait PartialOrd
.
The behavior of this macro is described in detail here .