haar_lib/num/total_f64/
mod.rs1use crate::impl_from;
4use crate::impl_one_zero;
5use crate::impl_ops;
6use crate::num::one_zero::*;
7
8use std::cmp::Ordering;
9
10#[derive(Clone, Copy, Debug, PartialEq, Default)]
12pub struct Totalf64(pub f64);
13
14impl PartialOrd for Totalf64 {
15 fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
16 Some(self.cmp(other))
17 }
18}
19
20impl Eq for Totalf64 {}
21impl Ord for Totalf64 {
22 fn cmp(&self, other: &Self) -> Ordering {
23 self.0.partial_cmp(&other.0).unwrap()
24 }
25}
26
27impl_ops!(Add for Totalf64, |s: Self, rhs: Self| Self(s.0 + rhs.0));
28impl_ops!(Sub for Totalf64, |s: Self, rhs: Self| Self(s.0 - rhs.0));
29impl_ops!(Mul for Totalf64, |s: Self, rhs: Self| Self(s.0 * rhs.0));
30impl_ops!(Div for Totalf64, |s: Self, rhs: Self| Self(s.0 / rhs.0));
31
32impl_ops!(AddAssign for Totalf64, |s: &mut Self, rhs: Self| s.0 += rhs.0);
33impl_ops!(SubAssign for Totalf64, |s: &mut Self, rhs: Self| s.0 -= rhs.0);
34impl_ops!(MulAssign for Totalf64, |s: &mut Self, rhs: Self| s.0 *= rhs.0);
35impl_ops!(DivAssign for Totalf64, |s: &mut Self, rhs: Self| s.0 /= rhs.0);
36
37impl_ops!(Neg for Totalf64, |s: Self| Self(-s.0));
38
39impl_from!(f64 => Totalf64, Self);
40impl_from!(f32 => Totalf64, |value| Self(value as f64));
41impl_from!(Totalf64 => f64, |value: Totalf64| value.0);
42
43impl_one_zero!(Totalf64; one: Self(1.0); zero: Self(0.0););