use std::num;
use crate::driver::route::indices;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Index {
pub requested: indices::SlotIndex,
pub capacity: num::NonZero<u32>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Generation {
Active(num::NonZero<u64>),
Retired(num::NonZero<u64>),
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Stale {
pub expected: num::NonZero<u64>,
pub observed: Generation,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Arm {
Stale(Stale),
Busy,
Detached,
}
const _: () = {
assert!(size_of::<Index>() == 2 * size_of::<u32>());
assert!(size_of::<Option<Index>>() == size_of::<Index>());
};