#![no_std]
#![doc = include_str!("../README.md")]
#![warn(missing_docs)]
use core::task::Waker;
pub mod queue_generic;
pub mod queue_integrated;
#[cfg(feature = "_generic-queue")]
type QueueImpl = queue_generic::Queue;
#[cfg(not(feature = "_generic-queue"))]
type QueueImpl = queue_integrated::Queue;
#[derive(Debug)]
pub struct Queue {
queue: QueueImpl,
}
impl Queue {
pub const fn new() -> Self {
Self {
queue: QueueImpl::new(),
}
}
pub fn schedule_wake(&mut self, at: u64, waker: &Waker) -> bool {
self.queue.schedule_wake(at, waker)
}
pub fn next_expiration(&mut self, now: u64) -> u64 {
self.queue.next_expiration(now)
}
}