Rust possède un raccourci pour exprimer les génériques contraintes par un trait:
fn my_function(foo: impl Foo) { ... }
Cela équivaut à écrire:
fn my_function<T>(foo: T) where T:Foo { ... }