1 2 3 4 5 6 7 8 9 10 11
pub trait OrdBy { type Target: Ord + Clone; fn ord_by(&self) -> Self::Target; } impl<T: Ord + Clone> OrdBy for T { type Target = T; fn ord_by(&self) -> T { self.clone() } }