#![expect(
clippy::items_after_statements,
reason = "Looks alright for compilation time checks."
)]
use std::mem as StdMem;
use super::{InternodeNode, NUM_CHILDREN, WIDTH};
use crate::nodeversion::NodeVersion;
#[cfg(target_pointer_width = "64")]
const _: () = {
use std::sync::atomic::{AtomicPtr, AtomicU8, AtomicU64};
const SIZE: usize = StdMem::size_of::<InternodeNode>();
const ALIGN: usize = StdMem::align_of::<InternodeNode>();
assert!(SIZE == 320);
assert!(SIZE == 5 * 64);
assert!(ALIGN == 64);
assert!(StdMem::size_of::<NodeVersion>() == 4);
assert!(StdMem::size_of::<AtomicU8>() == 1);
assert!(StdMem::size_of::<AtomicU64>() == 8);
assert!(StdMem::size_of::<AtomicPtr<u8>>() == 8);
assert!(StdMem::size_of::<[AtomicU64; WIDTH]>() == 120);
assert!(StdMem::size_of::<[AtomicPtr<u8>; NUM_CHILDREN]>() == 128);
};
#[cfg(target_pointer_width = "64")]
const _: () = {
use std::mem::offset_of;
assert!(offset_of!(InternodeNode, version) == 0);
assert!(offset_of!(InternodeNode, nkeys) == 4);
assert!(offset_of!(InternodeNode, height) == 5);
assert!(offset_of!(InternodeNode, _pad) == 6);
assert!(offset_of!(InternodeNode, parent) == 8);
assert!(offset_of!(InternodeNode, ikey0) == 16);
const IKEY6_OFFSET: usize = 16 + 6 * 8;
assert!(IKEY6_OFFSET == 64);
assert!(offset_of!(InternodeNode, child) == 136);
const CHILD6_OFFSET: usize = 136 + 6 * 8;
assert!(CHILD6_OFFSET == 184);
assert!(CHILD6_OFFSET < 192);
const CHILD7_OFFSET: usize = 136 + 7 * 8;
assert!(CHILD7_OFFSET == 192);
};
#[cfg(target_pointer_width = "64")]
const _: () = {
use std::mem::offset_of;
const HEADER_END: usize = offset_of!(InternodeNode, ikey0);
assert!(HEADER_END == 16);
const KEYS_IN_CL0: usize = (64 - HEADER_END) / 8;
assert!(KEYS_IN_CL0 == 6);
const IKEY0_START: usize = offset_of!(InternodeNode, ikey0);
const IKEY6_OFFSET: usize = IKEY0_START + 6 * 8;
assert!(IKEY6_OFFSET == 64);
};