Skip to main content

Clock

Trait Clock 

Source
pub trait Clock: Sized {
    type T: TimeInt + Hash;

    const SCALING_FACTOR: Fraction;

    // Required method
    fn try_now(&self) -> Result<Instant<Self>, Error>;

    // Provided method
    fn new_timer<Dur>(
        &self,
        duration: Dur,
    ) -> Timer<'_, OneShot, Armed, Self, Dur>
       where Dur: FixedPoint + Duration { ... }
}
Expand description

The Clock trait provides an abstraction for hardware-specific timer peripherals, external timer devices, RTCs, etc.

The Clock is characterized by an inner unsigned integer storage type (either u32 or u64), a u32/u32 Fraction defining the duration (in seconds) of one count of the Clock, and a custom error type representing errors that may be generated by the implementation.

In addition to the Clock::try_now() method which returns an Instant, software Timers can be spawned from a Clock object.

Required Associated Constants§

Source

const SCALING_FACTOR: Fraction

The duration of one clock tick in seconds, AKA the clock precision.

Required Associated Types§

Source

type T: TimeInt + Hash

The type to hold the tick count

Required Methods§

Source

fn try_now(&self) -> Result<Instant<Self>, Error>

Get the current Instant

§Errors

Provided Methods§

Source

fn new_timer<Dur>(&self, duration: Dur) -> Timer<'_, OneShot, Armed, Self, Dur>
where Dur: FixedPoint + Duration,

Spawn a new, OneShot Timer from this clock

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§