pub struct CanonicalEventKey {
pub vtime: SchedTime,
pub region_ordinal: u32,
pub reconv_iter: u32,
pub canonical_process_id: ProcessId,
pub local_send_seq: u64,
}Expand description
The one ordering scheme used everywhere (ARCHITECTURE §4 item 3, the faceoffs.md WOCB-verdict graft): intra-region delta-cycle commit, inter-region barrier delivery, and the side-effect/VPI/FST commit stream all key on this tuple.
derive(PartialOrd, Ord) is intentional and is DT-010’s total order: field
declaration order below already matches the 5-tuple’s own significance
order (vtime, region_ordinal, reconv_iter, canonical_process_id, local_send_seq), so the lexicographic order the derive produces is the
canonical order — comparing/sorting CanonicalEventKey values (e.g.
sched::order::WriteBuffer::resolve_last_write_wins’s last-write-wins
resolution, SC-010/SC-012) never needs a hand-written Ord impl or a
second key type. Reordering these fields would silently change the total
order this type defines — don’t.
Fields§
§vtime: SchedTime§region_ordinal: u32§reconv_iter: u32§canonical_process_id: ProcessId§local_send_seq: u64Trait Implementations§
Source§impl Clone for CanonicalEventKey
impl Clone for CanonicalEventKey
impl Copy for CanonicalEventKey
Source§impl Debug for CanonicalEventKey
impl Debug for CanonicalEventKey
impl Eq for CanonicalEventKey
Source§impl Ord for CanonicalEventKey
impl Ord for CanonicalEventKey
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for CanonicalEventKey
impl PartialEq for CanonicalEventKey
Source§impl PartialOrd for CanonicalEventKey
impl PartialOrd for CanonicalEventKey
impl StructuralPartialEq for CanonicalEventKey
Auto Trait Implementations§
impl Freeze for CanonicalEventKey
impl RefUnwindSafe for CanonicalEventKey
impl Send for CanonicalEventKey
impl Sync for CanonicalEventKey
impl Unpin for CanonicalEventKey
impl UnsafeUnpin for CanonicalEventKey
impl UnwindSafe for CanonicalEventKey
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§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
key and return true if they are equal.