use malloc_size_of_derive::MallocSizeOf;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
pub struct DomNodeKindStats {
pub documents: usize,
pub document_fragments: usize,
pub doctypes: usize,
pub elements: usize,
pub text: usize,
pub comments: usize,
pub processing_instructions: usize,
}
#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
pub struct DomArenaStats {
pub live_nodes: usize,
pub node_kinds: DomNodeKindStats,
pub attribute_count: usize,
pub estimated_bytes: usize,
}
#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
pub enum LayoutApplyKind {
#[default]
Unchanged,
RepaintOnly,
Restyled,
Spliced,
FullRecompute,
}
#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
pub enum LayoutDamageClass {
#[default]
None,
PaintOnly,
Relayout,
}
#[derive(Clone, Copy, Debug, Default, Deserialize, MallocSizeOf, PartialEq, Serialize)]
pub struct LayoutBatchStats {
pub applied: LayoutApplyKind,
pub damage: LayoutDamageClass,
pub mutations_in: usize,
pub coalesced_invalidations: usize,
pub restyled_elements: usize,
pub boxes_rebuilt: usize,
pub fragment_count: usize,
pub box_tree_nodes: Option<usize>,
}