Rust tiene una forma abreviada para expresar genéricos limitados por un trait:
fn my_function(foo: impl Foo) { ... }
Esto equivale a escribir:
fn my_function<T>(foo: T) where T:Foo { ... }