2016-03-07 23:42:29 +00: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 07:46:12 +00:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
<String as IntoCow>::into_cow("foo".to_string());
|
2021-02-18 20:01:44 +00:00
|
|
|
//~^ ERROR missing generics for
|
2021-01-02 18:45:11 +00:00
|
|
|
|
|
|
|
<String as IntoCow>::into_cow::<str>("foo".to_string());
|
2023-02-23 17:27:06 +00:00
|
|
|
//~^ ERROR method takes 0 generic arguments but 1
|
2021-02-18 20:01:44 +00:00
|
|
|
//~| ERROR missing generics for
|
2015-01-15 07:46:12 +00:00
|
|
|
}
|