pub struct VectorClock { /* private fields */ }Expand description
A vector clock: maps node_id to logical timestamp.
Implementations§
Source§impl VectorClock
impl VectorClock
Sourcepub fn tick(&mut self, node: impl Into<String>)
pub fn tick(&mut self, node: impl Into<String>)
Increment this node’s logical timestamp by 1.
§Arguments
node— Identifier for the node performing the event.
Sourcepub fn get(&self, node: &str) -> u64
pub fn get(&self, node: &str) -> u64
Get a node’s current timestamp. Returns 0 for unknown nodes.
§Arguments
node— Node identifier to query.
Sourcepub fn merge(&self, other: &VectorClock) -> VectorClock
pub fn merge(&self, other: &VectorClock) -> VectorClock
Merge two clocks, taking the component-wise maximum.
The operation is commutative, associative, and idempotent.
§Returns
A new VectorClock representing the merged state.
Sourcepub fn compare(&self, other: &VectorClock) -> ClockOrder
pub fn compare(&self, other: &VectorClock) -> ClockOrder
Compare two clocks to determine causal ordering.
§Returns
A ClockOrder variant describing the relationship.
Sourcepub fn node_count(&self) -> usize
pub fn node_count(&self) -> usize
Return the number of distinct nodes tracked by this clock.
Trait Implementations§
Source§impl Clone for VectorClock
impl Clone for VectorClock
Source§fn clone(&self) -> VectorClock
fn clone(&self) -> VectorClock
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for VectorClock
impl Debug for VectorClock
Source§impl Default for VectorClock
impl Default for VectorClock
Source§fn default() -> VectorClock
fn default() -> VectorClock
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for VectorClock
impl<'de> Deserialize<'de> for VectorClock
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 PartialEq for VectorClock
impl PartialEq for VectorClock
Source§impl Serialize for VectorClock
impl Serialize for VectorClock
impl Eq for VectorClock
impl StructuralPartialEq for VectorClock
Auto Trait Implementations§
impl Freeze for VectorClock
impl RefUnwindSafe for VectorClock
impl Send for VectorClock
impl Sync for VectorClock
impl Unpin for VectorClock
impl UnsafeUnpin for VectorClock
impl UnwindSafe for VectorClock
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