From 070fb45ead0a69eea9c581dc00c807639c01e5f9 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 16 Nov 2025 19:54:37 +0100 Subject: [PATCH] feat: add equal to BetterThan operator --- codes/eoa_lib/src/comparison/mod.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/codes/eoa_lib/src/comparison/mod.rs b/codes/eoa_lib/src/comparison/mod.rs index deaca8f469caa181a9a4a2e18b95fa7f52b208b7..1dfb10c17b3be1e73e1335a70da45227110da420 100644 --- a/codes/eoa_lib/src/comparison/mod.rs +++ b/codes/eoa_lib/src/comparison/mod.rs @@ -1,8 +1,11 @@ pub trait BetterThanOperator { 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 BetterThanOperator 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 BetterThanOperator 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 + } }