~ruther/ctu-fee-eoa

070fb45ead0a69eea9c581dc00c807639c01e5f9 — Rutherther 25 days ago f6ad831
feat: add equal to BetterThan operator
1 files changed, 12 insertions(+), 1 deletions(-)

M codes/eoa_lib/src/comparison/mod.rs
M codes/eoa_lib/src/comparison/mod.rs => codes/eoa_lib/src/comparison/mod.rs +12 -1
@@ 1,8 1,11 @@
pub trait BetterThanOperator<T> {
    fn better_than(self: &Self, a: &T, b: &T) -> bool;
    fn equal(self: &Self, a: &T, b: &T) -> bool;

    fn ordering(&self, a: &T, b: &T) -> std::cmp::Ordering {
        if self.better_than(a, b) {
        if self.equal(a, b) {
            std::cmp::Ordering::Equal
        } else if self.better_than(a, b) {
            std::cmp::Ordering::Less
        } else {
            std::cmp::Ordering::Greater


@@ 23,6 26,10 @@ impl<T> BetterThanOperator<T> for MinimizingOperator
    fn better_than(self: &Self, a: &T, b: &T) -> bool {
        a < b
    }

    fn equal(self: &Self, a: &T, b: &T) -> bool {
        *a == *b
    }
}

pub struct MaximizingOperator;


@@ 38,4 45,8 @@ impl<T> BetterThanOperator<T> for MaximizingOperator
    fn better_than(self: &Self, a: &T, b: &T) -> bool {
        a > b
    }

    fn equal(self: &Self, a: &T, b: &T) -> bool {
        *a == *b
    }
}