#[repr(transparent)]pub struct EpochId(pub u64);Expand description
Identifies an epoch for memory management.
Think of epochs like garbage collection generations. When all readers from an old epoch finish, we can reclaim that memory. You usually don’t interact with epochs directly - they’re managed by the transaction system.
Tuple Fields§
§0: u64Implementations§
Source§impl EpochId
impl EpochId
Sourcepub const PENDING: Self
pub const PENDING: Self
Sentinel epoch for uncommitted transactional versions.
Versions created inside an active (not yet committed) transaction use
this value as their created_epoch. Because PENDING > any_real_epoch,
is_visible_at(real_epoch) returns false, preventing dirty reads.
On commit, the session finalizes these to the actual commit epoch.
Sourcepub const fn is_visible_at(&self, viewing_epoch: Self) -> bool
pub const fn is_visible_at(&self, viewing_epoch: Self) -> bool
Checks if this epoch is visible at the given epoch.
An epoch is visible if it was created before or at the viewing epoch.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for EpochId
impl<'de> Deserialize<'de> for EpochId
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for EpochId
impl Ord for EpochId
Source§impl PartialOrd for EpochId
impl PartialOrd for EpochId
impl Copy for EpochId
impl Eq for EpochId
impl StructuralPartialEq for EpochId
Auto Trait Implementations§
impl Freeze for EpochId
impl RefUnwindSafe for EpochId
impl Send for EpochId
impl Sync for EpochId
impl Unpin for EpochId
impl UnsafeUnpin for EpochId
impl UnwindSafe for EpochId
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.