From 3ca687c0e08ceb24336fe1572ad290dc380cae94 Mon Sep 17 00:00:00 2001 From: Matt Ickstadt Date: Tue, 22 Sep 2020 15:54:11 -0500 Subject: [PATCH] Add conversions from us/ns to Hertz --- src/time.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/time.rs b/src/time.rs index d8401e74..3b6b3d74 100644 --- a/src/time.rs +++ b/src/time.rs @@ -181,6 +181,38 @@ impl Into for MilliSeconds { } } +// MicroSeconds <-> Hertz +impl Into for Hertz { + fn into(self) -> MicroSeconds { + let freq = self.0; + assert!(freq != 0 && freq <= 1_000_000); + MicroSeconds(1_000_000 / freq) + } +} +impl Into for MicroSeconds { + fn into(self) -> Hertz { + let period = self.0; + assert!(period != 0 && period <= 1_000_000); + Hertz(1_000_000 / period) + } +} + +// NanoSeconds <-> Hertz +impl Into for Hertz { + fn into(self) -> NanoSeconds { + let freq = self.0; + assert!(freq != 0 && freq <= 1_000_000_000); + NanoSeconds(1_000_000_000 / freq) + } +} +impl Into for NanoSeconds { + fn into(self) -> Hertz { + let period = self.0; + assert!(period != 0 && period <= 1_000_000_000); + Hertz(1_000_000_000 / period) + } +} + // Into core::time::Duration impl Into for MilliSeconds { fn into(self) -> Duration {