Rust hat eine Kurzschreibweise, um Generics auszudrücken, die durch einen Trait eingeschränkt sind:
fn my_function(foo: impl Foo) { ... }
Das ist gleichbedeutend mit:
fn my_function<T>(foo: T) where T:Foo { ... }