Macro iproduct
macro_rules! iproduct {
(@flatten $I:expr,) => { ... };
(@flatten $I:expr, $J:expr, $($K:expr,)*) => { ... };
() => { ... };
($I:expr $(,)?) => { ... };
($I:expr, $J:expr $(,)?) => { ... };
($I:expr, $J:expr, $($K:expr),+ $(,)?) => { ... };
}
Available on crate feature
dep_itertools
only.Expand description
Create an iterator over the “cartesian product” of iterators.
Iterator element type is like (A, B, ..., E)
if formed
from iterators (I, J, ..., M)
with element types I::Item = A
, J::Item = B
, etc.
// Iterate over the coordinates of a 4 x 4 x 4 grid
// from (0, 0, 0), (0, 0, 1), .., (0, 1, 0), (0, 1, 1), .. etc until (3, 3, 3)
for (i, j, k) in iproduct!(0..4, 0..4, 0..4) {
// ..
}