embassy-time

Crates

git

Versions

default

Flavors

Skip to main content

MockDriver

Struct MockDriver 

Source
pub struct MockDriver(/* private fields */);
Expand description

A mock driver that can be manually advanced. This is useful for testing code that works with Instant and Duration.

This driver can also be used to test runtime functionality, such as timers, delays, etc.

§Example

ⓘ
fn has_a_second_passed(reference: Instant) -> bool {
    Instant::now().duration_since(reference) >= Duration::from_secs(1)
}

fn test_second_passed() {
    let driver = embassy_time::MockDriver::get();
    let reference = Instant::now();
    assert_eq!(false, has_a_second_passed(reference));
    driver.advance(Duration::from_secs(1));
    assert_eq!(true, has_a_second_passed(reference));
}

Implementations§

Source§

impl MockDriver

Source

pub const fn new() -> Self

Creates a new mock driver.

Source

pub fn get() -> &'static MockDriver

Gets a reference to the global mock driver.

Source

pub fn reset(&self)

Resets the internal state of the mock driver This will clear and deallocate all alarms, and reset the current time to 0.

Source

pub fn advance(&self, duration: Duration)

Advances the time by the specified Duration. Calling any alarm callbacks that are due.

Trait Implementations§

Source§

impl Debug for MockDriver

Source§

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

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

impl Driver for MockDriver

Source§

fn now(&self) -> u64

Return the current timestamp in ticks. Read more
Source§

fn schedule_wake(&self, at: u64, waker: &Waker)

Schedules a waker to be awoken at moment at. If this moment is in the past, the waker might be awoken immediately.

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> 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, 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, <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.