pub struct UniversalHeader {
pub magic: u32,
pub capacity: u32,
pub state: AtomicU64,
pub insert_count: AtomicU64,
pub contains_count: AtomicU64,
/* private fields */
}Fields§
§magic: u32§capacity: u32§state: AtomicU64Packed state, single AtomicU64 for atomic update / atomic reader-load:
- bits 63..32 =
version: u32(bumps per migration within the current generation; wraps to 0 at u32::MAX) - bits 31..16 =
generation: u16(bumps when version wraps; ensures a reused (generation, version) pair NEVER appears in the same lifetime, so readers comparing the full u64 state always observe wrap-around and re-open) - bits 15..0 =
strategy: u16(low byte is the Strategy discriminant; high byte reserved for strategy variants)
True exhaustion: generation u16 AND version u32 both at MAX (= 2^48 = 281 trillion migrations). Returns VersionExhausted.
insert_count: AtomicU64Bumped by every insert; consumed by the writer’s local
policy to decide when to migrate.
contains_count: AtomicU64Bumped by every contains; same role as insert_count.
Auto Trait Implementations§
impl !Freeze for UniversalHeader
impl RefUnwindSafe for UniversalHeader
impl Send for UniversalHeader
impl Sync for UniversalHeader
impl Unpin for UniversalHeader
impl UnsafeUnpin for UniversalHeader
impl UnwindSafe for UniversalHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more