#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum QueuePolicy {
Unbounded,
RejectNew {
capacity: usize,
},
DropNewest {
capacity: usize,
},
DropOldest {
capacity: usize,
},
}
impl QueuePolicy {
#[must_use]
pub(crate) fn capacity(self) -> Option<usize> {
match self {
Self::Unbounded => None,
Self::RejectNew { capacity }
| Self::DropNewest { capacity }
| Self::DropOldest { capacity } => Some(capacity),
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum QueueOverflowAction {
RejectedNew,
DroppedNewest,
DroppedOldest,
}