Skip to main content

MockSleeper

Struct MockSleeper 

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

A manually controlled elapsed-time sleeper for deterministic tests.

This type implements Sleeper by waiting until manually controlled mock elapsed time reaches the requested target. When the tokio feature is enabled, it also implements AsyncSleeper with the same mock elapsed-time semantics.

§Testing guidance

Use this type when the code under test sleeps for retry, backoff, polling, or timeout intervals. MockSleeper controls elapsed sleep time only; it does not change the current time returned by crate::MockClock. If a component depends on both current-time reads and sleep completion, inject a MockClock and a MockSleeper separately and advance each one explicitly.

Implementations§

Source§

impl MockSleeper

Source

pub fn new() -> Self

Creates a mock sleeper whose elapsed time starts at zero.

§Returns

A new mock sleeper with zero elapsed time.

Source

pub fn elapsed(&self) -> Duration

Returns the current mock elapsed time.

§Returns

The elapsed time observed by this mock sleeper.

Source

pub fn set_elapsed(&self, elapsed: Duration)

Sets the current mock elapsed time.

This wakes all blocking and asynchronous sleepers so they can recheck their target elapsed time.

§Arguments
  • elapsed - The new elapsed time.
Source

pub fn advance(&self, duration: Duration)

Advances the mock elapsed time by a duration.

§Arguments
  • duration - The amount to add to the current elapsed time.
Source

pub fn reset(&self)

Resets the mock elapsed time to zero.

Trait Implementations§

Source§

impl Clone for MockSleeper

Source§

fn clone(&self) -> MockSleeper

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 MockSleeper

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for MockSleeper

Source§

fn default() -> Self

Creates a new mock sleeper.

Source§

impl Sleeper for MockSleeper

Source§

fn sleep_for(&self, duration: Duration)

Blocks until mock elapsed time has advanced by duration.

Auto Trait Implementations§

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.