Itérateurs

Tous les itérateurs ont des méthodes qui produisent d’autres itérateurs :

#![allow(unused)]
fn main() {
for (idx, value) in (2..).into_iter().step_by(3).skip(1).take(4)
                         .chain(1..=3)
                         .enumerate()
{
    println!("{idx}: {value}");
}
}

On peut produire des itérateurs assez complexes rien qu’avec cet outil.

Comme l’itération est paresseuse, le compilateur optimise plutôt bien ces pipelines.