#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub struct Counters {
pub address_length_drops: u64,
pub global_broadcast_dadr_drops: u64,
pub broadcast_pdu_type_drops: u64,
pub group_dadr_drops: u64,
pub malformed: u64,
pub bad_messages: u64,
pub unknown_port: u64,
pub hop_count_drops: u64,
pub denied: u64,
pub unroutable_rejects: u64,
pub rejects: u64,
pub solicitations: u64,
pub write_failures: u64,
pub egress_too_long: u64,
pub refused: u64,
pub undrained: u64,
}
impl Counters {
pub(super) const ZERO: Self = Self {
address_length_drops: 0,
global_broadcast_dadr_drops: 0,
broadcast_pdu_type_drops: 0,
group_dadr_drops: 0,
malformed: 0,
bad_messages: 0,
unknown_port: 0,
hop_count_drops: 0,
denied: 0,
unroutable_rejects: 0,
rejects: 0,
solicitations: 0,
write_failures: 0,
egress_too_long: 0,
refused: 0,
undrained: 0,
};
}
pub(super) fn bump(count: &mut u64) {
*count = count.saturating_add(1);
}