bitflags::bitflags! {
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
/// Tracks which aspects of a component need updating.
///
/// Dirty flags propagate information through the runtime so it knows whether
/// to repaint, relayout, or rebuild the component tree. Multiple flags can
/// be set simultaneously.
///
/// | Flag | Meaning |
/// |------|---------|
/// | `PAINT` | Visual output is stale; repaint needed. |
/// | `LAYOUT` | Layout geometry is stale; relayout + repaint needed. |
/// | `TREE` | The component tree structure may have changed. |
pub struct Dirty: u8 {
/// Nothing needs updating.
const NONE = 0;
/// Repaint only — geometry is still valid.
const PAINT = 0b0001;
/// Relayout required — geometry may have changed.
const LAYOUT = 0b0010;
/// Tree structure may have changed (children added/removed).
const TREE = 0b0100;
}
}