Skip to main content

Clock

Struct Clock 

Source
pub struct Clock { /* private fields */ }
Expand description

A monotonic clock, either the real one or a paused one that a test advances by hand.

Clones share one clock. Equality is identity, not the current time, so all real clocks are equal and a paused clock equals only its own clones.

Implementations§

Source§

impl Clock

Source

pub fn paused() -> Self

Available on crate feature test-clock only.

Creates a paused clock, set to the current real time. It moves only when Clock::advance or Clock::advance_to moves it.

Source

pub fn advance(&self, by: Duration)

Available on crate feature test-clock only.

Moves a paused clock forward by by and wakes all its waiters. It returns once they are notified, without waiting for them to act. A zero step does nothing.

§Panics

Panics on a real clock, or if the new time overflows Instant. The time is unchanged after a panic.

Source

pub fn advance_to(&self, target: Instant)

Available on crate feature test-clock only.

Moves a paused clock forward to target and wakes all its waiters. It returns once they are notified, without waiting for them to act. Advancing to the current time does nothing.

§Panics

Panics on a real clock, or if target is earlier than the current time. The time is unchanged after a panic.

Source§

impl Clock

Source

pub fn real() -> Self

Returns the real monotonic clock, which reads Instant::now.

Source

pub fn now(&self) -> Instant

Returns the clock’s current time.

Source

pub fn waiter(&self) -> Waiter

Creates a waiter that measures deadlines on this clock. A paused clock wakes it on every advance.

Trait Implementations§

Source§

impl Clone for Clock

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Clock

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Shows whether the clock is paused and, if so, how far it has advanced.

Source§

impl Eq for Clock

Available on crate features test-clock only.
Source§

impl PartialEq for Clock

Available on crate features test-clock only.
Source§

fn eq(&self, other: &Self) -> bool

Compares identity. Real clocks are all equal; a paused clock equals only its own clones.

1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more

Auto Trait Implementations§

§

impl Freeze for Clock

§

impl RefUnwindSafe for Clock

§

impl Send for Clock

§

impl Sync for Clock

§

impl Unpin for Clock

§

impl UnsafeUnpin for Clock

§

impl UnwindSafe for Clock

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.