1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// build-pass trait FooTrait {} trait BarTrait { fn foo<T: FooTrait>(_: T) -> Self; } struct FooStruct(u32); impl BarTrait for FooStruct { fn foo<T: FooTrait>(_: T) -> Self { Self(u32::default()) } } fn main() {}