wiwi_memory_usage/impls/
wrapping.rs1use crate::macros::impl_memory_usage_size_of;
2use core::num::Wrapping;
3
4impl_memory_usage_size_of! {
5 Wrapping<u8>
6 Wrapping<u16>
7 Wrapping<u32>
8 Wrapping<u64>
9 Wrapping<u128>
10 Wrapping<usize>
11
12 Wrapping<i8>
13 Wrapping<i16>
14 Wrapping<i32>
15 Wrapping<i64>
16 Wrapping<i128>
17 Wrapping<isize>
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23 use crate::{
24 MemoryUsage as _,
25 MemoryUsageConst as _,
26 MemoryUsageStatic as _
27 };
28
29 macro_rules! test_wrapping {
30 { $($test_name:ident($ty:ident))* } => {
31 $(
32 #[test]
33 fn $test_name() {
34 let num_wrapping: Wrapping<$ty> = Wrapping(24); let num: $ty = 24; assert_eq!(num_wrapping.memory_usage(), num.memory_usage());
38 assert_eq!(num_wrapping.memory_usage_const(), num.memory_usage_const());
39 assert_eq!(<Wrapping<$ty>>::MEMORY_USAGE, $ty::MEMORY_USAGE);
40 }
41 )*
42 }
43 }
44
45 test_wrapping! {
46 wrapping_u8_usage(u8)
47 wrapping_u16_usage(u16)
48 wrapping_u32_usage(u32)
49 wrapping_u64_usage(u64)
50 wrapping_u128_usage(u128)
51 wrapping_usize_usage(usize)
52
53 wrapping_i8_usage(i8)
54 wrapping_i16_usage(i16)
55 wrapping_i32_usage(i32)
56 wrapping_i64_usage(i64)
57 wrapping_i128_usage(i128)
58 wrapping_isize_usage(isize)
59 }
60}