1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use core::cmp::Ordering; /// Objective direction #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub enum ObjDirection { /// Maximization Max, /// Minimization Min, } impl ObjDirection { pub fn is_better<T>(self, a: &T, b: &T) -> Option<Ordering> where T: PartialOrd, { match self { ObjDirection::Max => a.partial_cmp(b), ObjDirection::Min => b.partial_cmp(a), } } }