num_to/
i16.rs

1use super::*;
2
3impl ToU8 for i16 {
4    fn to_u8(self) -> u8 {
5        self.to_u16().to_u8()
6    }
7}
8impl ToU16 for i16 {
9    fn to_u16(self) -> u16 {
10        if self & Self::MIN != 0 {
11            0
12        } else {
13            self as u16
14        }
15    }
16}
17impl ToU32 for i16 {
18    fn to_u32(self) -> u32 {
19        self.to_u16().as_u32()
20    }
21}
22impl ToU64 for i16 {
23    fn to_u64(self) -> u64 {
24        self.to_u16().as_u64()
25    }
26}
27impl ToU128 for i16 {
28    fn to_u128(self) -> u128 {
29        self.to_u16().as_u128()
30    }
31}
32
33impl ToI8 for i16 {
34    fn to_i8(self) -> i8 {
35        match self {
36            ..-0x80 => i8::MIN,
37            -0x80..0x80 => self as i8,
38            0x80.. => i8::MAX,
39        }
40    }
41}
42impl AsI16 for i16 {
43    fn as_i16(self) -> i16 {
44        self
45    }
46}
47impl AsI32 for i16 {
48    fn as_i32(self) -> i32 {
49        self.into()
50    }
51}
52impl AsI64 for i16 {
53    fn as_i64(self) -> i64 {
54        self.into()
55    }
56}
57impl AsI128 for i16 {
58    fn as_i128(self) -> i128 {
59        self.into()
60    }
61}
62
63impl AsF32 for i16 {
64    fn as_f32(self) -> f32 {
65        self.into()
66    }
67}
68impl AsF64 for i16 {
69    fn as_f64(self) -> f64 {
70        self.into()
71    }
72}