1use super::*;
2
3impl ToU8 for u128 {
4 fn to_u8(self) -> u8 {
5 if self & 0xffff_ffff_ffff_ffff_ffff_ffff_ffff_ff00 != 0 {
6 u8::MAX
7 } else {
8 self as u8
9 }
10 }
11}
12impl AsU16 for u128 {
13 fn as_u16(self) -> u16 {
14 if self & 0xffff_ffff_ffff_ffff_ffff_ffff_ffff_0000 != 0 {
15 u16::MAX
16 } else {
17 self as u16
18 }
19 }
20}
21impl ToU32 for u128 {
22 fn to_u32(self) -> u32 {
23 if self & 0xffff_ffff_ffff_ffff_ffff_ffff_0000_0000 != 0 {
24 u32::MAX
25 } else {
26 self as u32
27 }
28 }
29}
30impl AsU64 for u128 {
31 fn as_u64(self) -> u64 {
32 if self & 0xffff_ffff_ffff_ffff_0000_0000_0000_0000 != 0 {
33 u64::MAX
34 } else {
35 self as u64
36 }
37 }
38}
39impl AsU128 for u128 {
40 fn as_u128(self) -> u128 {
41 self
42 }
43}
44
45impl ToI8 for u128 {
46 fn to_i8(self) -> i8 {
47 if self & 0xffff_ffff_ffff_ffff_ffff_ffff_ffff_ff80 != 0 {
48 i8::MAX
49 } else {
50 self as i8
51 }
52 }
53}
54impl AsI16 for u128 {
55 fn as_i16(self) -> i16 {
56 if self & 0xffff_ffff_ffff_ffff_ffff_ffff_ffff_8000 != 0 {
57 i16::MAX
58 } else {
59 self as i16
60 }
61 }
62}
63impl ToI32 for u128 {
64 fn to_i32(self) -> i32 {
65 if self & 0xffff_ffff_ffff_ffff_ffff_ffff_8000_0000 != 0 {
66 i32::MAX
67 } else {
68 self as i32
69 }
70 }
71}
72impl AsI64 for u128 {
73 fn as_i64(self) -> i64 {
74 if self & 0xffff_ffff_ffff_ffff_8000_0000_0000_0000 != 0 {
75 i64::MAX
76 } else {
77 self as i64
78 }
79 }
80}
81impl AsI128 for u128 {
82 fn as_i128(self) -> i128 {
83 if self & 0x8000_0000_0000_0000_0000_0000_0000_0000 != 0 {
84 i128::MAX
85 } else {
86 self as i128
87 }
88 }
89}
90
91impl ToF32 for u128 {
92 fn to_f32(self) -> f32 {
93 self as f32
94 }
95}
96impl ToF64 for u128 {
97 fn to_f64(self) -> f64 {
98 self as f64
99 }
100}