use crate::depot::queue::round::set;
#[derive(Debug)]
pub struct Head;
impl<'a, T, Tag, const MAX: u32, B> set::Occupied<'a, T, Tag, MAX, true, B, Head> {
pub fn advance(self) -> &'a mut T {
let entry = self;
unsafe { entry.order.ring().next_live(entry.order, entry.index) };
entry.into_mut()
}
pub fn remove(self) -> set::Occupied<'a, T, Tag, MAX, true, B, set::Idle> {
let entry = self;
unsafe { entry.order.ring().pop_front(entry.order, entry.index) };
entry.phase()
}
}