//! A drop that repeats every frame, warned about once per run.
/// Reports a drop past a cap: warned the first time, so default log
/// filters show it, and a debug line every time after — the drop repeats
/// every frame.
#[derive(Default)]
pub(crate) struct Overrun(bool);
impl Overrun {
pub(crate) fn report(&mut self, message: core::fmt::Arguments<'_>) {
if core::mem::replace(&mut self.0, true) {
log::debug!("{message}");
} else {
log::warn!("{message}");
}
}
}