Turbofish
La syntaxe ::<T> de Rust pour préciser explicitement des types génériques. Le surnom vient de sa ressemblance avec un poisson (::<>), baptisé ainsi par la communauté en 2015. Usage : "42".parse::<i32>(), vec.iter().collect::<Vec<_>>().
Pourquoi pas simplement parse<i32> ? Parce que a<b est déjà une comparaison en Rust — <> sans les deux deux-points est ambigu avec les comparaisons. C++ a le même problème et l'a résolu avec le mot-clé template sur l'accès aux membres. Rust a choisi le turbofish. La communauté Rust le tient pour une syntaxe charmante ; c'est l'un des rares concepts du langage à avoir son propre mème. Grâce à une meilleure inférence de types, le Rust moderne en a moins souvent besoin. Usage classique : collect::<Result<Vec<_>, _>>() pour agréger les erreurs.