#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(cmp_minmax)] use std::cmp::{self, Ordering}; #[derive(Eq)] struct Equal(&'static str); impl PartialEq for Equal { fn eq(&self, other: &Self) -> bool { true } } impl PartialOrd for Equal { fn partial_cmp(&self, other: &Self) -> Option { Some(Ordering::Equal) } } impl Ord for Equal { fn cmp(&self, other: &Self) -> Ordering { Ordering::Equal } } fn main() { assert_eq!(cmp::minmax(Equal("v1"), Equal("v2")).map(| v | v.0), ["v1", "v2"]); }