O Rust possui uma abreviação para expressar genéricos restritos por uma trait:
fn minha_funcao(foo: impl Foo) { ... }
Isso é equivalente a escrever:
fn minha_funcao<T>(foo: T) where T:Foo { ... }