wiwi_memory_usage/impls/
saturating.rs1use crate::macros::impl_memory_usage_size_of;
2use core::num::Saturating;
3
4impl_memory_usage_size_of! {
5 Saturating<u8>
6 Saturating<u16>
7 Saturating<u32>
8 Saturating<u64>
9 Saturating<u128>
10 Saturating<usize>
11
12 Saturating<i8>
13 Saturating<i16>
14 Saturating<i32>
15 Saturating<i64>
16 Saturating<i128>
17 Saturating<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_saturating {
30 { $($test_name:ident($ty:ident))* } => {
31 $(
32 #[test]
33 fn $test_name() {
34 let num_saturating: Saturating<$ty> = Saturating(24); let num: $ty = 24; assert_eq!(num_saturating.memory_usage(), num.memory_usage());
38 assert_eq!(num_saturating.memory_usage_const(), num.memory_usage_const());
39 assert_eq!(<Saturating<$ty>>::MEMORY_USAGE, $ty::MEMORY_USAGE);
40 }
41 )*
42 }
43 }
44
45 test_saturating! {
46 saturating_u8_usage(u8)
47 saturating_u16_usage(u16)
48 saturating_u32_usage(u32)
49 saturating_u64_usage(u64)
50 saturating_u128_usage(u128)
51 saturating_usize_usage(usize)
52
53 saturating_i8_usage(i8)
54 saturating_i16_usage(i16)
55 saturating_i32_usage(i32)
56 saturating_i64_usage(i64)
57 saturating_i128_usage(i128)
58 saturating_isize_usage(isize)
59 }
60}