diff options
| -rw-r--r-- | embassy/src/time/duration.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/embassy/src/time/duration.rs b/embassy/src/time/duration.rs index 8135961ea..ba8960606 100644 --- a/embassy/src/time/duration.rs +++ b/embassy/src/time/duration.rs | |||
| @@ -22,6 +22,10 @@ impl Duration { | |||
| 22 | self.ticks * 1000 / TICKS_PER_SECOND | 22 | self.ticks * 1000 / TICKS_PER_SECOND |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | pub const fn as_micros(&self) -> u64 { | ||
| 26 | self.ticks * 1_000_000 / TICKS_PER_SECOND | ||
| 27 | } | ||
| 28 | |||
| 25 | pub const fn from_ticks(ticks: u64) -> Duration { | 29 | pub const fn from_ticks(ticks: u64) -> Duration { |
| 26 | Duration { ticks } | 30 | Duration { ticks } |
| 27 | } | 31 | } |
| @@ -38,6 +42,15 @@ impl Duration { | |||
| 38 | } | 42 | } |
| 39 | } | 43 | } |
| 40 | 44 | ||
| 45 | /* | ||
| 46 | NOTE: us delays may not be as accurate | ||
| 47 | */ | ||
| 48 | pub const fn from_micros(millis: u64) -> Duration { | ||
| 49 | Duration { | ||
| 50 | ticks: millis * TICKS_PER_SECOND / 1_000_000, | ||
| 51 | } | ||
| 52 | } | ||
| 53 | |||
| 41 | pub fn checked_add(self, rhs: Duration) -> Option<Duration> { | 54 | pub fn checked_add(self, rhs: Duration) -> Option<Duration> { |
| 42 | self.ticks | 55 | self.ticks |
| 43 | .checked_add(rhs.ticks) | 56 | .checked_add(rhs.ticks) |
