pub struct ManualClock(_);
Expand description

A Clock where the passage of time can be manually controlled.

This type is mainly used for testing behavior of speed limiter only.

This clock only supports up to 264 ns (about 584.5 years).

Examples

use async_speed_limit::clock::{Clock, ManualClock, Nanoseconds};

let clock = ManualClock::new();
assert_eq!(clock.now(), Nanoseconds(0));
clock.set_time(Nanoseconds(1_000_000_000));
assert_eq!(clock.now(), Nanoseconds(1_000_000_000));

Implementations§

source§

impl ManualClock

source

pub fn new() -> Self

Creates a new clock with time set to 0.

source

pub fn set_time(&self, time: Nanoseconds)

Set the current time of this clock to the given value.

Panics

Since now() must be monotonically increasing, if the new time is less than the previous time, this function will panic.

Trait Implementations§

source§

impl Clock for ManualClock

§

type Instant = Nanoseconds

Type to represent a point of time. Read more
§

type Delay = ManualDelay

Future type returned by sleep().
source§

fn now(&self) -> Self::Instant

Returns the current time instant. It should be monotonically increasing, but not necessarily high-precision or steady. Read more
source§

fn sleep(&self, dur: Duration) -> Self::Delay

Asynchronously sleeps the current task for the given duration. Read more
source§

impl Clone for ManualClock

source§

fn clone(&self) -> ManualClock

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for ManualClock

source§

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

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

impl Default for ManualClock

source§

fn default() -> ManualClock

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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 Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.