From cf1323fb67b2841a99bb497d7947ffa772ff354d Mon Sep 17 00:00:00 2001 From: Joshua Salzedo Date: Sun, 21 Mar 2021 16:45:24 -0700 Subject: [PATCH] Add module-level documentation for embassy::time --- embassy/src/time/mod.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/embassy/src/time/mod.rs b/embassy/src/time/mod.rs index b45a608d..b19ab6db 100644 --- a/embassy/src/time/mod.rs +++ b/embassy/src/time/mod.rs @@ -1,3 +1,6 @@ +/// Time abstractions +/// To use these abstractions, first call `set_clock` with an instance of an monotonic `Clock`. +/// mod duration; mod instant; mod traits; @@ -14,10 +17,16 @@ pub const TICKS_PER_SECOND: u64 = 32768; static mut CLOCK: Option<&'static dyn Clock> = None; +/// Sets the clock used for the timing abstractions +/// +/// Safety: Sets a mutable global. pub unsafe fn set_clock(clock: &'static dyn Clock) { CLOCK = Some(clock); } +/// Return the current timestamp in ticks. +/// This is guaranteed to be monotonic, i.e. a call to now() will always return +/// a greater or equal value than earler calls. pub(crate) fn now() -> u64 { unsafe { unwrap!(CLOCK, "No clock set").now() } }