num_to/
blanket.rs

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}