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}