pub struct HlcClock { /* private fields */ }Implementations§
Source§impl HlcClock
impl HlcClock
pub fn new(node_id: u16) -> Arc<HlcClock> ⓘ
Sourcepub fn tick(&self) -> Hlc
pub fn tick(&self) -> Hlc
Issue the next monotonic timestamp.
Algorithm: wall = max(prev.wall_ms, system_now) if wall == prev.wall_ms: counter = prev.counter + 1 else: counter = 0
The lock is held only across pure CPU work — never across .await.
pub fn node_id(&self) -> u16
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for HlcClock
impl !RefUnwindSafe for HlcClock
impl Send for HlcClock
impl Sync for HlcClock
impl Unpin for HlcClock
impl UnsafeUnpin for HlcClock
impl UnwindSafe for HlcClock
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more