embassy_time_queue_utils/
lib.rs1#![no_std]
2#![doc = include_str!("../README.md")]
3#![warn(missing_docs)]
4
5use core::task::Waker;
6
7pub mod queue_generic;
8
9#[cfg(all(not(feature = "integrated-timers"), not(feature = "_generic-queue")))]
11mod queue_integrated;
12#[cfg(feature = "integrated-timers")]
13pub mod queue_integrated;
14
15#[cfg(all(not(feature = "integrated-timers"), feature = "_generic-queue"))]
16type QueueImpl = queue_generic::Queue;
17#[cfg(any(feature = "integrated-timers", not(feature = "_generic-queue")))]
18type QueueImpl = queue_integrated::Queue;
19
20#[derive(Debug)]
25pub struct Queue {
26 queue: QueueImpl,
27}
28
29impl Queue {
30 pub const fn new() -> Self {
32 Self {
33 queue: QueueImpl::new(),
34 }
35 }
36
37 pub fn schedule_wake(&mut self, at: u64, waker: &Waker) -> bool {
42 self.queue.schedule_wake(at, waker)
43 }
44
45 pub fn next_expiration(&mut self, now: u64) -> u64 {
47 self.queue.next_expiration(now)
48 }
49}