use crate::ring::Frame;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct RingLoss {
pub overwritten: u64,
pub unavailable: u64,
}
impl RingLoss {
pub const fn total(self) -> u64 {
self.overwritten.saturating_add(self.unavailable)
}
pub const fn is_empty(self) -> bool {
self.overwritten == 0 && self.unavailable == 0
}
}
#[derive(Clone, Debug, Default, PartialEq, Eq)]
pub struct RingPoll {
pub frames: Vec<Frame>,
pub loss: RingLoss,
pub from_counter: u64,
pub to_counter: u64,
}
impl RingPoll {
pub fn is_empty(&self) -> bool {
self.frames.is_empty() && self.loss.is_empty()
}
}