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.