1 2 3 4 5 6 7 8 9 10
pub enum Cow<'a, A: 'a + ?Sized + ToOwned> { Borrowed(&'a A), Owned(<A as ToOwned>::Owned), } pub trait ToOwned { type Error; type Owned: Borrow<Self>; fn to_owned(&self) -> Result<Self::Owned, Self::Error>; }