redstone_ml/util/
absolute.rs1pub trait Absolute: Copy {
2 fn abs(&self) -> Self {
3 *self
4 }
5}
6
7impl Absolute for u8 {}
8impl Absolute for u16 {}
9impl Absolute for u32 {}
10impl Absolute for u64 {}
11impl Absolute for u128 {}
12impl Absolute for usize {}
13
14impl Absolute for i8 {
15 fn abs(&self) -> Self {
16 num::Signed::abs(self)
17 }
18}
19
20impl Absolute for i16 {
21 fn abs(&self) -> Self {
22 num::Signed::abs(self)
23 }
24}
25
26impl Absolute for i32 {
27 fn abs(&self) -> Self {
28 num::Signed::abs(self)
29 }
30}
31
32impl Absolute for i64 {
33 fn abs(&self) -> Self {
34 num::Signed::abs(self)
35 }
36}
37
38impl Absolute for i128 {
39 fn abs(&self) -> Self {
40 num::Signed::abs(self)
41 }
42}
43
44impl Absolute for isize {
45 fn abs(&self) -> Self {
46 num::Signed::abs(self)
47 }
48}
49
50impl Absolute for f32 {
51 fn abs(&self) -> Self {
52 num::Signed::abs(self)
53 }
54}
55
56impl Absolute for f64 {
57 fn abs(&self) -> Self {
58 num::Signed::abs(self)
59 }
60}