bixverse_core/utils/
heap_structures.rs1use std::cmp::Ordering;
5
6use crate::prelude::*;
7
8#[derive(Clone, Copy)]
10pub struct RevOrderedFloat<T: BixverseFloat>(pub T);
11
12impl<T> RevOrderedFloat<T>
13where
14 T: BixverseFloat,
15{
16 pub fn get_value(&self) -> T {
18 self.0
19 }
20}
21
22impl<T: BixverseFloat> PartialEq for RevOrderedFloat<T> {
23 fn eq(&self, other: &Self) -> bool {
24 self.0.total_cmp(&other.0) == Ordering::Equal
25 }
26}
27
28impl<T: BixverseFloat> Eq for RevOrderedFloat<T> {}
29
30impl<T: BixverseFloat> PartialOrd for RevOrderedFloat<T> {
31 fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
32 Some(self.cmp(other))
33 }
34}
35
36impl<T: BixverseFloat> Ord for RevOrderedFloat<T> {
37 fn cmp(&self, other: &Self) -> Ordering {
38 other.0.total_cmp(&self.0)
39 }
40}