From 500ec630519a1eaa63aa67caf2e42736308dac7b Mon Sep 17 00:00:00 2001 From: paladin Date: Tue, 29 Sep 2026 11:03:56 +0100 Subject: [PATCH] Fix Equivalent traits for keys on Sets by removing default reflexive Equivalent impl. --- src/map.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/map.rs b/src/map.rs index 04751a6..e6a8d72 100644 --- a/src/map.rs +++ b/src/map.rs @@ -33,15 +33,6 @@ pub trait Equivalent: Sized { fn matches(&self, other: &T) -> bool; } -impl Equivalent for T -where - T: PartialEq, -{ - fn matches(&self, other: &T) -> bool { - self == other - } -} - pub trait Hashes { fn hashed(&self) -> Hashed; } @@ -376,6 +367,12 @@ impl Equivalent for SetEntry { } } +impl Equivalent for SetEntry where K: Equivalent { + fn matches(&self, other: &K) -> bool { + other.matches(&self.0.as_ref().unwrap()) + } +} + impl Set { pub fn resize(&mut self, len: usize) { self.0.resize(len)