aboutsummaryrefslogtreecommitdiff
path: root/embassy-time
diff options
context:
space:
mode:
authorMatteo Meluzzi <[email protected]>2025-10-24 15:48:34 +0200
committerMatteo Meluzzi <[email protected]>2025-10-24 15:48:34 +0200
commit7976f950b0de72c521f92efa350c67ccd197fab9 (patch)
tree8759312eb000de09b92a4921f476d5c16b7e7342 /embassy-time
parent828a8df18d04877df1f55f04354980b28ff2f2f8 (diff)
Merge branch 'main' into 17-add-support-for-boot-protocol
Diffstat (limited to 'embassy-time')
-rw-r--r--embassy-time/Cargo.toml2
-rw-r--r--embassy-time/src/duration.rs8
-rw-r--r--embassy-time/src/lib.rs11
-rw-r--r--embassy-time/src/timer.rs4
4 files changed, 8 insertions, 17 deletions
diff --git a/embassy-time/Cargo.toml b/embassy-time/Cargo.toml
index bad6ecf97..05614dbf5 100644
--- a/embassy-time/Cargo.toml
+++ b/embassy-time/Cargo.toml
@@ -1,7 +1,7 @@
1[package] 1[package]
2name = "embassy-time" 2name = "embassy-time"
3version = "0.5.0" 3version = "0.5.0"
4edition = "2021" 4edition = "2024"
5description = "Instant and Duration for embedded no-std systems, with async timer support" 5description = "Instant and Duration for embedded no-std systems, with async timer support"
6repository = "https://github.com/embassy-rs/embassy" 6repository = "https://github.com/embassy-rs/embassy"
7documentation = "https://docs.embassy.dev/embassy-time" 7documentation = "https://docs.embassy.dev/embassy-time"
diff --git a/embassy-time/src/duration.rs b/embassy-time/src/duration.rs
index b3ea0468d..b2bfd6de9 100644
--- a/embassy-time/src/duration.rs
+++ b/embassy-time/src/duration.rs
@@ -175,13 +175,7 @@ impl Duration {
175 /// NOTE: Giving this function a hz >= the TICK_HZ of your platform will clamp the Duration to 1 175 /// NOTE: Giving this function a hz >= the TICK_HZ of your platform will clamp the Duration to 1
176 /// tick. Doing so will not deadlock, but will certainly not produce the desired output. 176 /// tick. Doing so will not deadlock, but will certainly not produce the desired output.
177 pub const fn from_hz(hz: u64) -> Duration { 177 pub const fn from_hz(hz: u64) -> Duration {
178 let ticks = { 178 let ticks = { if hz >= TICK_HZ { 1 } else { (TICK_HZ + hz / 2) / hz } };
179 if hz >= TICK_HZ {
180 1
181 } else {
182 (TICK_HZ + hz / 2) / hz
183 }
184 };
185 Duration { ticks } 179 Duration { ticks }
186 } 180 }
187 181
diff --git a/embassy-time/src/lib.rs b/embassy-time/src/lib.rs
index 77f4b344d..e375fe93e 100644
--- a/embassy-time/src/lib.rs
+++ b/embassy-time/src/lib.rs
@@ -1,5 +1,6 @@
1#![cfg_attr(not(any(feature = "std", feature = "wasm", test)), no_std)] 1#![cfg_attr(not(any(feature = "std", feature = "wasm", test)), no_std)]
2#![allow(async_fn_in_trait)] 2#![allow(async_fn_in_trait)]
3#![allow(unsafe_op_in_unsafe_fn)]
3#![doc = include_str!("../README.md")] 4#![doc = include_str!("../README.md")]
4#![allow(clippy::new_without_default)] 5#![allow(clippy::new_without_default)]
5#![warn(missing_docs)] 6#![warn(missing_docs)]
@@ -27,18 +28,14 @@ mod driver_std;
27#[cfg(feature = "wasm")] 28#[cfg(feature = "wasm")]
28mod driver_wasm; 29mod driver_wasm;
29 30
30pub use delay::{block_for, Delay}; 31pub use delay::{Delay, block_for};
31pub use duration::Duration; 32pub use duration::Duration;
32pub use embassy_time_driver::TICK_HZ; 33pub use embassy_time_driver::TICK_HZ;
33pub use instant::Instant; 34pub use instant::Instant;
34pub use timer::{with_deadline, with_timeout, Ticker, TimeoutError, Timer, WithTimeout}; 35pub use timer::{Ticker, TimeoutError, Timer, WithTimeout, with_deadline, with_timeout};
35 36
36const fn gcd(a: u64, b: u64) -> u64 { 37const fn gcd(a: u64, b: u64) -> u64 {
37 if b == 0 { 38 if b == 0 { a } else { gcd(b, a % b) }
38 a
39 } else {
40 gcd(b, a % b)
41 }
42} 39}
43 40
44pub(crate) const GCD_1K: u64 = gcd(TICK_HZ, 1_000); 41pub(crate) const GCD_1K: u64 = gcd(TICK_HZ, 1_000);
diff --git a/embassy-time/src/timer.rs b/embassy-time/src/timer.rs
index fcf79f58e..2f5967c63 100644
--- a/embassy-time/src/timer.rs
+++ b/embassy-time/src/timer.rs
@@ -1,9 +1,9 @@
1use core::future::{poll_fn, Future}; 1use core::future::{Future, poll_fn};
2use core::pin::Pin; 2use core::pin::Pin;
3use core::task::{Context, Poll}; 3use core::task::{Context, Poll};
4 4
5use futures_core::stream::FusedStream;
6use futures_core::Stream; 5use futures_core::Stream;
6use futures_core::stream::FusedStream;
7 7
8use crate::{Duration, Instant}; 8use crate::{Duration, Instant};
9 9