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) -> &Self::Target { self } }