pub mod fanout;
pub mod handoff;
pub mod queue;
pub(in crate::driver) mod resident;
pub mod store;
pub mod table;
mod waker;
pub use waker::Waker;
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
#[repr(transparent)]
pub struct Position(usize);
impl Position {
pub(in crate::driver::schedule::ready) const fn new(index: usize) -> Self {
Self(index)
}
}
const _: () = {
assert!(std::mem::size_of::<Position>() == std::mem::size_of::<usize>());
assert!(std::mem::align_of::<Position>() == std::mem::align_of::<usize>());
};
#[derive(Clone, Copy, Eq, PartialEq)]
#[repr(u8)]
pub enum Drain {
Empty,
Woke,
Exhausted,
}
#[derive(Clone, Copy, Eq, PartialEq)]
#[repr(u8)]
pub enum Once {
Empty,
Woke,
}