2016-03-07 15:42:29 -08:00
|
|
|
use std::borrow::Cow;
|
|
|
|
|
|
|
|
pub trait IntoCow<'a, B: ?Sized> where B: ToOwned {
|
|
|
|
fn into_cow(self) -> Cow<'a, B>;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<'a> IntoCow<'a, str> for String {
|
|
|
|
fn into_cow(self) -> Cow<'a, str> {
|
|
|
|
Cow::Owned(self)
|
|
|
|
}
|
|
|
|
}
|
2015-01-15 09:46:12 +02:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
<String as IntoCow>::into_cow("foo".to_string());
|
2021-02-18 21:01:44 +01:00
|
|
|
//~^ ERROR missing generics for
|
2021-01-02 19:45:11 +01:00
|
|
|
|
|
|
|
<String as IntoCow>::into_cow::<str>("foo".to_string());
|
2023-02-23 10:27:06 -07:00
|
|
|
//~^ ERROR method takes 0 generic arguments but 1
|
2021-02-18 21:01:44 +01:00
|
|
|
//~| ERROR missing generics for
|
2015-01-15 09:46:12 +02:00
|
|
|
}
|