Function tract_hir::internal::tract_itertools::multizip [−][src]
pub fn multizip<T, U>(t: U) -> Zip<T>ⓘimpl<A, B, C, D, E, F, G> Iterator for Zip<(A, B, C, D, E, F, G)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator,
G: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item, <G as Iterator>::Item);impl<A, B, C, D, E, F, G, H, I> Iterator for Zip<(A, B, C, D, E, F, G, H, I)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator,
G: Iterator,
H: Iterator,
I: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item, <G as Iterator>::Item, <H as Iterator>::Item, <I as Iterator>::Item);impl<A, B, C, D, E, F> Iterator for Zip<(A, B, C, D, E, F)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item);impl<A, B, C> Iterator for Zip<(A, B, C)> where
A: Iterator,
B: Iterator,
C: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item);impl<A, B, C, D, E, F, G, H> Iterator for Zip<(A, B, C, D, E, F, G, H)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator,
G: Iterator,
H: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item, <G as Iterator>::Item, <H as Iterator>::Item);impl<A, B> Iterator for Zip<(A, B)> where
A: Iterator,
B: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item);impl<A> Iterator for Zip<(A,)> where
A: Iterator, type Item = (<A as Iterator>::Item,);impl<A, B, C, D, E, F, G, H, I, J, K, L> Iterator for Zip<(A, B, C, D, E, F, G, H, I, J, K, L)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator,
G: Iterator,
H: Iterator,
I: Iterator,
J: Iterator,
K: Iterator,
L: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item, <G as Iterator>::Item, <H as Iterator>::Item, <I as Iterator>::Item, <J as Iterator>::Item, <K as Iterator>::Item, <L as Iterator>::Item);impl<A, B, C, D, E, F, G, H, I, J> Iterator for Zip<(A, B, C, D, E, F, G, H, I, J)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator,
G: Iterator,
H: Iterator,
I: Iterator,
J: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item, <G as Iterator>::Item, <H as Iterator>::Item, <I as Iterator>::Item, <J as Iterator>::Item);impl<A, B, C, D, E, F, G, H, I, J, K> Iterator for Zip<(A, B, C, D, E, F, G, H, I, J, K)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator,
F: Iterator,
G: Iterator,
H: Iterator,
I: Iterator,
J: Iterator,
K: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item, <F as Iterator>::Item, <G as Iterator>::Item, <H as Iterator>::Item, <I as Iterator>::Item, <J as Iterator>::Item, <K as Iterator>::Item);impl<A, B, C, D> Iterator for Zip<(A, B, C, D)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item);impl<A, B, C, D, E> Iterator for Zip<(A, B, C, D, E)> where
A: Iterator,
B: Iterator,
C: Iterator,
D: Iterator,
E: Iterator, type Item = (<A as Iterator>::Item, <B as Iterator>::Item, <C as Iterator>::Item, <D as Iterator>::Item, <E as Iterator>::Item);
where
Zip<T>: From<U>,
Zip<T>: Iterator,
Expand description
An iterator that generalizes .zip() and allows running multiple iterators in lockstep.
The iterator Zip<(I, J, ..., M)>
is formed from a tuple of iterators (or values that
implement IntoIterator
) and yields elements
until any of the subiterators yields None
.
The iterator element type is a tuple like like (A, B, ..., E)
where A
to E
are the
element types of the subiterator.
Note: The result of this macro is a value of a named type (Zip<(I, J, ..)>
of each component iterator I, J, ...
) if each component iterator is
nameable.
Prefer [izip!()
] over multizip
for the performance benefits of using the
standard library .zip()
. Prefer multizip
if a nameable type is needed.
use itertools::multizip;
// iterate over three sequences side-by-side
let mut results = [0, 0, 0, 0];
let inputs = [3, 7, 9, 6];
for (r, index, input) in multizip((&mut results, 0..10, &inputs)) {
*r = index * 10 + input;
}
assert_eq!(results, [0 + 3, 10 + 7, 29, 36]);