#[repr(C, align(64))]pub struct splinter_slot {
pub hash: atomic_uint_least64_t,
pub epoch: atomic_uint_least64_t,
pub val_off: u32,
pub val_len: atomic_uint_least32_t,
pub type_flag: atomic_uint_least8_t,
pub user_flag: atomic_uint_least8_t,
pub watcher_mask: atomic_uint_least64_t,
pub ctime: atomic_uint_least64_t,
pub atime: atomic_uint_least64_t,
pub bloom: atomic_uint_least64_t,
pub key: [c_char; 64],
}Expand description
@struct splinter_slot @brief Defines a single key-value slot in the hash table.
Each slot holds a key, its value’s location and length, and metadata for concurrent access and change tracking.
We changed val_len to atomic to avoid tearing on platforms where a plain 32-bit write could be observed partially by a reader.
Fields§
§hash: atomic_uint_least64_t@brief The FNV-1a hash of the key. 0 indicates an empty slot.
epoch: atomic_uint_least64_t@brief Per-slot epoch, incremented on write to this slot. Used for polling.
val_off: u32@brief Offset into the VALUES region where the value data is stored.
val_len: atomic_uint_least32_t@brief The actual length of the stored value data (atomic).
type_flag: atomic_uint_least8_t@brief The type-naming flags for slot typing
user_flag: atomic_uint_least8_t@brief The user-defined flags for slot features
watcher_mask: atomic_uint_least64_t@brief Watcher signal group for multi-watching
ctime: atomic_uint_least64_t@brief The time a slot was created (optional; must be set by the client)
atime: atomic_uint_least64_t@brief The last time the slot was meaningfully accessed (optional; must be set by the client)
bloom: atomic_uint_least64_t@brief The 64-bit Bloom filter / Label mask
key: [c_char; 64]@brief The null-terminated key string.
Trait Implementations§
Source§impl Clone for splinter_slot
impl Clone for splinter_slot
Source§fn clone(&self) -> splinter_slot
fn clone(&self) -> splinter_slot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more