use derive_more::Deref;
#[derive(Debug, Clone, Copy, Default, Hash, PartialEq, Eq, Deref)]
#[cfg_attr(any(target_arch = "x86_64", target_arch = "aarch64"), repr(align(128)))]
#[cfg_attr(
not(any(target_arch = "x86_64", target_arch = "aarch64")),
repr(align(64))
)]
pub(crate) struct CachePadded<T>(pub(crate) T);
macro_rules! ward {
($o:expr) => (ward!($o, else { return; }));
($o:expr, else $body:block) => { if let Some(x) = $o { x } else { $body }; };
($o:expr, $early:stmt) => (ward!($o, else { $early }));
}