commonware_runtime

Trait Clock

source
pub trait Clock:
    Clone
    + Send
    + Sync
    + 'static {
    // Required methods
    fn current(&self) -> SystemTime;
    fn sleep(
        &self,
        duration: Duration,
    ) -> impl Future<Output = ()> + Send + 'static;
    fn sleep_until(
        &self,
        deadline: SystemTime,
    ) -> impl Future<Output = ()> + Send + 'static;
}
Expand description

Interface that any task scheduler must implement to provide time-based operations.

It is necessary to mock time to provide deterministic execution of arbitrary tasks.

Required Methods§

source

fn current(&self) -> SystemTime

Returns the current time.

source

fn sleep(&self, duration: Duration) -> impl Future<Output = ()> + Send + 'static

Sleep for the given duration.

source

fn sleep_until( &self, deadline: SystemTime, ) -> impl Future<Output = ()> + Send + 'static

Sleep until the given deadline.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Clock for commonware_runtime::deterministic::Context

source§

impl Clock for commonware_runtime::tokio::Context