[][src]Struct hybrid_clocks::OffsetLimiter

pub struct OffsetLimiter<S: ClockSource> { /* fields omitted */ }

A wrapper around Clock that will refuse updates outside of our tolerance.

Implementations

impl<S: ClockSource> OffsetLimiter<S>[src]

pub fn new(clock: Clock<S>, max_offset: S::Delta) -> Self[src]

pub fn observe(&mut self, msg: &Timestamp<S::Time>) -> Result<()>[src]

Accepts a timestamp from an incoming message, and updates the clock so that further calls to now will always return a timestamp that happens-after either locally generated timestamps or that of the input message. Returns an Error iff the delta from our local lock to the observed timestamp is greater than our configured limit.

pub fn now(&mut self) -> Result<Timestamp<S::Time>>[src]

Creates a unique monotonic timestamp suitable for annotating messages we send.

pub fn into_inner(self) -> Clock<S>[src]

Extract the inner Clock

pub fn inner(&self) -> &Clock<S>[src]

Get a reference to the inner Clock

pub fn inner_mut(&mut self) -> &mut Clock<S>[src]

Get a mutable reference to the inner Clock

Trait Implementations

impl<S: Clone + ClockSource> Clone for OffsetLimiter<S> where
    S::Delta: Clone
[src]

impl<S: Debug + ClockSource> Debug for OffsetLimiter<S> where
    S::Delta: Debug
[src]

Auto Trait Implementations

impl<S> RefUnwindSafe for OffsetLimiter<S> where
    S: RefUnwindSafe,
    <S as ClockSource>::Delta: RefUnwindSafe,
    <S as ClockSource>::Time: RefUnwindSafe

impl<S> Send for OffsetLimiter<S> where
    S: Send,
    <S as ClockSource>::Delta: Send,
    <S as ClockSource>::Time: Send

impl<S> Sync for OffsetLimiter<S> where
    S: Sync,
    <S as ClockSource>::Delta: Sync,
    <S as ClockSource>::Time: Sync

impl<S> Unpin for OffsetLimiter<S> where
    S: Unpin,
    <S as ClockSource>::Delta: Unpin,
    <S as ClockSource>::Time: Unpin

impl<S> UnwindSafe for OffsetLimiter<S> where
    S: UnwindSafe,
    <S as ClockSource>::Delta: UnwindSafe,
    <S as ClockSource>::Time: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.