Iterate over two collections at the same time with the zip method:

iter1.zip(iter2).map(|(i1, i2)| )

for (i1, i2) in iter1.zip(iter2) {}

To iterate more you can nest zip():

for ((i1, i2), i3) in iter1.zip(iter2).zip(iter3) {}

See also Itertools::multizip.

⚠️ zip() ends as soon as any of the iterators ends. If the iterators have different lengths, only the shortest one will be fully iterated, and the remaining elements of the longer iterator will be silently ignored. Itertools::zip_eq catches this.

Example: Rust Playground.