2022-06-26 03:19:32 -05:00
|
|
|
#![feature(min_specialization)]
|
|
|
|
use std::fmt::{self, Display};
|
|
|
|
|
|
|
|
pub enum Cow<'a, B: ?Sized + 'a, O = <B as ToOwned>::Owned>
|
|
|
|
where
|
|
|
|
B: ToOwned,
|
|
|
|
{
|
|
|
|
Borrowed(&'a B),
|
|
|
|
Owned(O),
|
|
|
|
}
|
|
|
|
|
|
|
|
impl ToString for Cow<'_, str> {
|
|
|
|
fn to_string(&self) -> String {
|
|
|
|
String::new()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-07 20:40:59 -06:00
|
|
|
impl<B: ?Sized> Display for Cow<'_, B> {
|
|
|
|
//~^ ERROR: the trait bound `B: Clone` is not satisfied [E0277]
|
|
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
2023-01-07 21:14:27 -06:00
|
|
|
//~^ ERROR: the trait bound `B: Clone` is not satisfied [E0277]
|
2022-06-26 03:19:32 -05:00
|
|
|
write!(f, "foo")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|