Advertisement
Guest User

Untitled

a guest
Aug 18th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. use std::mem::{size_of, MaybeUninit};
  2.  
  3. const B: usize = 6;
  4. pub const CAPACITY: usize = 2 * B - 1;
  5.  
  6. #[repr(C)]
  7. struct LeafNodeA<K, V> {
  8. parent: *const (),
  9. parent_idx: MaybeUninit<u16>,
  10. len: u16,
  11. keys: [MaybeUninit<K>; CAPACITY],
  12. vals: [MaybeUninit<V>; CAPACITY],
  13. }
  14.  
  15. #[repr(C)]
  16. struct LeafNodeB<K, V> {
  17. parent: *const (),
  18. parent_idx: MaybeUninit<u16>,
  19. len: u16,
  20. shared_root: bool,
  21. keys: [MaybeUninit<K>; CAPACITY],
  22. vals: [MaybeUninit<V>; CAPACITY],
  23. }
  24.  
  25. macro_rules! compare_sizes {
  26. ($k:ty, $v:ty) => {
  27. println!("LeafNode<{}, {}>", stringify!($k), stringify!($v));
  28. println!(" current: {:?}", size_of::<LeafNodeA<$k, $v>>());
  29. println!(" with flag: {:?}", size_of::<LeafNodeB<$k, $v>>());
  30. }
  31. }
  32.  
  33. fn main() {
  34. compare_sizes!(u16, u16);
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement