From 1d9036b60436fe294ab87d04af26fdc7d1446056 Mon Sep 17 00:00:00 2001 From: Joshua Simmons Date: Fri, 3 Mar 2023 23:30:11 +0100 Subject: [PATCH] Fix clippy lint It doesn't like it when you implement Ord and Eq without also implementing PartialOrd and PartialEq manually. --- libs/narcissus-core/src/finite.rs | 32 +++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/libs/narcissus-core/src/finite.rs b/libs/narcissus-core/src/finite.rs index 1ef3676..13f9c51 100644 --- a/libs/narcissus-core/src/finite.rs +++ b/libs/narcissus-core/src/finite.rs @@ -15,7 +15,7 @@ impl Error for NotFiniteError {} /// /// This allows us to safely implement Hash, Eq and Ord. #[repr(transparent)] -#[derive(Clone, Copy, PartialEq, PartialOrd)] +#[derive(Clone, Copy)] pub struct FiniteF32(f32); impl FiniteF32 { @@ -34,8 +34,22 @@ impl FiniteF32 { } } +impl PartialEq for FiniteF32 { + #[inline(always)] + fn eq(&self, other: &Self) -> bool { + self.0 == other.0 + } +} + impl Eq for FiniteF32 {} +impl PartialOrd for FiniteF32 { + #[inline(always)] + fn partial_cmp(&self, other: &Self) -> Option { + self.0.partial_cmp(&other.0) + } +} + impl Ord for FiniteF32 { #[inline(always)] fn cmp(&self, other: &Self) -> std::cmp::Ordering { @@ -58,7 +72,7 @@ impl std::hash::Hash for FiniteF32 { /// /// This allows us to safely implement Hash, Eq and Ord. #[repr(transparent)] -#[derive(Clone, Copy, PartialEq, PartialOrd)] +#[derive(Clone, Copy)] pub struct FiniteF64(f64); impl FiniteF64 { @@ -77,8 +91,22 @@ impl FiniteF64 { } } +impl PartialEq for FiniteF64 { + #[inline(always)] + fn eq(&self, other: &Self) -> bool { + self.0 == other.0 + } +} + impl Eq for FiniteF64 {} +impl PartialOrd for FiniteF64 { + #[inline(always)] + fn partial_cmp(&self, other: &Self) -> Option { + self.0.partial_cmp(&other.0) + } +} + impl Ord for FiniteF64 { #[inline(always)] fn cmp(&self, other: &Self) -> std::cmp::Ordering { -- 2.49.0