1pub trait AsClone<T: Clone> { 2 fn as_clone(&self) -> T; 3} 4 5impl<T: AsClone<C>, C: Clone> AsClone<C> for &T { 6 fn as_clone(&self) -> C { 7 (*self).as_clone() 8 } 9}