1 use std::borrow::Cow; 2 3 pub trait IntoCow<'a, B: ?Sized> where B: ToOwned { into_cow(self) -> Cow<'a, B>4 fn into_cow(self) -> Cow<'a, B>; 5 } 6 7 impl<'a> IntoCow<'a, str> for String { into_cow(self) -> Cow<'a, str>8 fn into_cow(self) -> Cow<'a, str> { 9 Cow::Owned(self) 10 } 11 } 12 main()13fn main() { 14 <String as IntoCow>::into_cow("foo".to_string()); 15 //~^ ERROR missing generics for 16 17 <String as IntoCow>::into_cow::<str>("foo".to_string()); 18 //~^ ERROR this associated function takes 0 generic arguments but 1 19 //~| ERROR missing generics for 20 } 21