Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::mem::{size_of, MaybeUninit};
- const B: usize = 6;
- pub const CAPACITY: usize = 2 * B - 1;
- #[repr(C)]
- struct LeafNodeA<K, V> {
- parent: *const (),
- parent_idx: MaybeUninit<u16>,
- len: u16,
- keys: [MaybeUninit<K>; CAPACITY],
- vals: [MaybeUninit<V>; CAPACITY],
- }
- #[repr(C)]
- struct LeafNodeB<K, V> {
- parent: *const (),
- parent_idx: MaybeUninit<u16>,
- len: u16,
- shared_root: bool,
- keys: [MaybeUninit<K>; CAPACITY],
- vals: [MaybeUninit<V>; CAPACITY],
- }
- macro_rules! compare_sizes {
- ($k:ty, $v:ty) => {
- println!("LeafNode<{}, {}>", stringify!($k), stringify!($v));
- println!(" current: {:?}", size_of::<LeafNodeA<$k, $v>>());
- println!(" with flag: {:?}", size_of::<LeafNodeB<$k, $v>>());
- }
- }
- fn main() {
- compare_sizes!(u16, u16);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement