1use crate::MemoryReport;
6
7
8
9impl MemoryReport for i8 {}
10impl MemoryReport for i16 {}
11impl MemoryReport for i32 {}
12impl MemoryReport for i64 {}
13impl MemoryReport for i128 {}
14
15impl MemoryReport for u8 {}
16impl MemoryReport for u16 {}
17impl MemoryReport for u32 {}
18impl MemoryReport for u64 {}
19impl MemoryReport for u128 {}
20
21impl MemoryReport for isize {}
22impl MemoryReport for usize {}
23
24impl MemoryReport for f32 {}
25impl MemoryReport for f64 {}
26
27impl MemoryReport for bool {}
28impl MemoryReport for char {}
29
30
31
32#[cfg(test)]
33mod tests {
34 use super::*;
35
36 #[test]
37 fn direct() {
38 assert!(core::mem::size_of::<u8>() == u8::direct());
39 assert!(core::mem::size_of::<u16>() == u16::direct());
40 assert!(core::mem::size_of::<u32>() == u32::direct());
41 assert!(core::mem::size_of::<u64>() == u64::direct());
42 assert!(core::mem::size_of::<u128>() == u128::direct());
43
44 assert!(core::mem::size_of::<i8>() == i8::direct());
45 assert!(core::mem::size_of::<i16>() == i16::direct());
46 assert!(core::mem::size_of::<i32>() == i32::direct());
47 assert!(core::mem::size_of::<i64>() == i64::direct());
48 assert!(core::mem::size_of::<i128>() == i128::direct());
49
50 assert!(core::mem::size_of::<isize>() == isize::direct());
51 assert!(core::mem::size_of::<usize>() == usize::direct());
52
53 assert!(core::mem::size_of::<f32>() == f32::direct());
54 assert!(core::mem::size_of::<f64>() == f64::direct());
55
56 assert!(core::mem::size_of::<char>() == char::direct());
57 assert!(core::mem::size_of::<bool>() == bool::direct());
58 }
59
60 #[test]
61 fn indirect() {
62 assert!(0 == 0u8.indirect());
63 assert!(0 == 0u16.indirect());
64 assert!(0 == 0u32.indirect());
65 assert!(0 == 0u64.indirect());
66 assert!(0 == 0u128.indirect());
67
68 assert!(0 == 0i8.indirect());
69 assert!(0 == 0i16.indirect());
70 assert!(0 == 0i32.indirect());
71 assert!(0 == 0i64.indirect());
72 assert!(0 == 0i128.indirect());
73
74 assert!(0 == 0isize.indirect());
75 assert!(0 == 0usize.indirect());
76
77 assert!(0 == 0.0f32.indirect());
78 assert!(0 == 0.0f64.indirect());
79
80 assert!(0 == 'a'.indirect());
81 assert!(0 == true.indirect());
82 }
83
84 #[test]
85 fn children() {
86 assert!(0 == 0u8.children());
87 assert!(0 == 0u16.children());
88 assert!(0 == 0u32.children());
89 assert!(0 == 0u64.children());
90 assert!(0 == 0u128.children());
91
92 assert!(0 == 0i8.children());
93 assert!(0 == 0i16.children());
94 assert!(0 == 0i32.children());
95 assert!(0 == 0i64.children());
96 assert!(0 == 0i128.children());
97
98 assert!(0 == 0isize.children());
99 assert!(0 == 0usize.children());
100
101 assert!(0 == 0.0f32.children());
102 assert!(0 == 0.0f64.children());
103
104 assert!(0 == 'a'.children());
105 assert!(0 == true.children());
106 }
107}