use crate::depot::{queue::links, raw};
mod fifo;
pub mod lanes;
mod link;
pub use fifo::Fifo;
pub use link::Link;
mod slot;
pub use slot::Slot;
mod iter;
pub use iter::Iter;
fn selected<O: raw::KeyOwner<P>, P>(owner: &O) -> (links::Index, &Link<O::Key, P>) {
let (key, link) = owner.parts();
let index = unsafe { links::Index::new_usize(raw::Key::index(key)) };
(index, link)
}
pub struct Membership<const LINKED: bool>;
impl<const LINKED: bool> crate::depot::raw::Sealed for Membership<LINKED> {}
impl<const LINKED: bool> crate::depot::Predicate for Membership<LINKED> {}
pub struct NonEmpty;
impl crate::depot::raw::Sealed for NonEmpty {}
impl crate::depot::Predicate for NonEmpty {}
pub struct Exclusive;
impl crate::depot::raw::Sealed for Exclusive {}
impl crate::depot::Predicate for Exclusive {}