#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default)]
pub(crate) enum Redraw {
#[default]
Clean,
Paint,
Layout,
Cascade,
}
impl Redraw {
pub(crate) fn note(&mut self, need: Redraw) {
if need > *self {
*self = need;
}
}
pub(crate) fn note_if(&mut self, cond: bool, need: Redraw) {
if cond {
self.note(need);
}
}
}
#[cfg(test)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub(crate) struct FrameStats {
pub(crate) full_cascades: u32,
pub(crate) subtree_cascades: u32,
pub(crate) layouts: u32,
pub(crate) paints: u32,
pub(crate) walks: u32,
}