1use super::*;
2
3impl<T: AsU8> ToU8 for T {
4 fn to_u8(self) -> u8 {
5 self.as_u8()
6 }
7}
8impl<T: AsU16> ToU16 for T {
9 fn to_u16(self) -> u16 {
10 self.as_u16()
11 }
12}
13impl<T: AsU32> ToU32 for T {
14 fn to_u32(self) -> u32 {
15 self.as_u32()
16 }
17}
18impl<T: AsU64> ToU64 for T {
19 fn to_u64(self) -> u64 {
20 self.as_u64()
21 }
22}
23impl<T: AsU128> ToU128 for T {
24 fn to_u128(self) -> u128 {
25 self.as_u128()
26 }
27}
28
29impl<T: AsI8> ToI8 for T {
30 fn to_i8(self) -> i8 {
31 self.as_i8()
32 }
33}
34impl<T: AsI16> ToI16 for T {
35 fn to_i16(self) -> i16 {
36 self.as_i16()
37 }
38}
39impl<T: AsI32> ToI32 for T {
40 fn to_i32(self) -> i32 {
41 self.as_i32()
42 }
43}
44impl<T: AsI64> ToI64 for T {
45 fn to_i64(self) -> i64 {
46 self.as_i64()
47 }
48}
49impl<T: AsI128> ToI128 for T {
50 fn to_i128(self) -> i128 {
51 self.as_i128()
52 }
53}
54
55impl<T: AsF32> ToF32 for T {
56 fn to_f32(self) -> f32 {
57 self.as_f32()
58 }
59}
60impl<T: AsF64> ToF64 for T {
61 fn to_f64(self) -> f64 {
62 self.as_f64()
63 }
64}
65
66#[cfg(target_pointer_width = "16")]
67mod platform_specific {
68 use super::*;
69 impl<T: AsU16> AsUsize for T {
70 fn as_usize(self) -> usize {
71 self.as_u16() as usize
72 }
73 }
74 impl<T: ToU16> ToUsize for T {
75 fn to_usize(self) -> usize {
76 self.to_u16() as usize
77 }
78 }
79 impl<T: AsI16> AsIsize for T {
80 fn as_isize(self) -> isize {
81 self.as_i16() as isize
82 }
83 }
84 impl<T: ToI16> ToIsize for T {
85 fn to_isize(self) -> isize {
86 self.to_i16() as isize
87 }
88 }
89}
90
91#[cfg(target_pointer_width = "32")]
92mod platform_specific {
93 use super::*;
94 impl<T: AsU32> AsUsize for T {
95 fn as_usize(self) -> usize {
96 self.as_u32() as usize
97 }
98 }
99 impl<T: ToU32> ToUsize for T {
100 fn to_usize(self) -> usize {
101 self.to_u32() as usize
102 }
103 }
104 impl<T: AsI32> AsIsize for T {
105 fn as_isize(self) -> isize {
106 self.as_i32() as isize
107 }
108 }
109 impl<T: ToI32> ToIsize for T {
110 fn to_isize(self) -> isize {
111 self.to_i32() as isize
112 }
113 }
114}
115
116#[cfg(target_pointer_width = "64")]
117mod platform_specific {
118 use super::*;
119 impl<T: AsU64> AsUsize for T {
120 fn as_usize(self) -> usize {
121 self.as_u64() as usize
122 }
123 }
124 impl<T: ToU64> ToUsize for T {
125 fn to_usize(self) -> usize {
126 self.to_u64() as usize
127 }
128 }
129 impl<T: AsI64> AsIsize for T {
130 fn as_isize(self) -> isize {
131 self.as_i64() as isize
132 }
133 }
134 impl<T: ToI64> ToIsize for T {
135 fn to_isize(self) -> isize {
136 self.to_i64() as isize
137 }
138 }
139}