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