]> git.nega.tv - josh/narcissus/commitdiff
Fix clippy lint
authorJoshua Simmons <josh@nega.tv>
Fri, 3 Mar 2023 22:30:11 +0000 (23:30 +0100)
committerJoshua Simmons <josh@nega.tv>
Fri, 3 Mar 2023 22:30:11 +0000 (23:30 +0100)
It doesn't like it when you implement Ord and Eq without also
implementing PartialOrd and PartialEq manually.

libs/narcissus-core/src/finite.rs

index 1ef3676596c0fa791195e3df3f5e967861461070..13f9c516b4946471fc08a2ab82329b57094469d6 100644 (file)
@@ -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<std::cmp::Ordering> {
+        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<std::cmp::Ordering> {
+        self.0.partial_cmp(&other.0)
+    }
+}
+
 impl Ord for FiniteF64 {
     #[inline(always)]
     fn cmp(&self, other: &Self) -> std::cmp::Ordering {