rutil/number_traits/core_float_ops/
classification.rs1use std::num::FpCategory;
2
3pub trait ClassificationOps {
5 fn is_nan(self) -> bool;
7
8 fn is_infinite(self) -> bool;
11
12 fn is_finite(self) -> bool;
14
15 fn is_subnormal(self) -> bool;
17
18 fn is_normal(self) -> bool;
21
22 fn classify(self) -> FpCategory;
26}
27
28macro_rules! impl_classification {
30 ($($t:ty),*) => {
31 $(impl ClassificationOps for $t {
32 #[inline] fn is_nan(self) -> bool { self.is_nan() }
33 #[inline] fn is_infinite(self) -> bool { self.is_infinite() }
34 #[inline] fn is_finite(self) -> bool { self.is_finite() }
35 #[inline] fn is_subnormal(self) -> bool { self.is_subnormal() }
36 #[inline] fn is_normal(self) -> bool { self.is_normal() }
37 #[inline] fn classify(self) -> FpCategory { self.classify() }
38 })*
39 };
40}
41
42impl_classification!(f32, f64);