engine_observables_api/
stats.rs1use malloc_size_of_derive::MallocSizeOf;
11use serde::{Deserialize, Serialize};
12
13#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
15pub struct DomNodeKindStats {
16 pub documents: usize,
17 pub document_fragments: usize,
18 pub doctypes: usize,
19 pub elements: usize,
20 pub text: usize,
21 pub comments: usize,
22 pub processing_instructions: usize,
23}
24
25#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
27pub struct DomArenaStats {
28 pub live_nodes: usize,
29 pub node_kinds: DomNodeKindStats,
30 pub attribute_count: usize,
31 pub estimated_bytes: usize,
33}
34
35#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
37pub enum LayoutApplyKind {
38 #[default]
39 Unchanged,
40 RepaintOnly,
41 Restyled,
42 Spliced,
43 FullRecompute,
44}
45
46#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
48pub enum LayoutDamageClass {
49 #[default]
50 None,
51 PaintOnly,
52 Relayout,
53}
54
55#[derive(Clone, Copy, Debug, Default, Deserialize, MallocSizeOf, PartialEq, Serialize)]
57pub struct LayoutBatchStats {
58 pub applied: LayoutApplyKind,
59 pub damage: LayoutDamageClass,
60 pub mutations_in: usize,
61 pub coalesced_invalidations: usize,
62 pub restyled_elements: usize,
63 pub boxes_rebuilt: usize,
64 pub fragment_count: usize,
65 pub box_tree_nodes: Option<usize>,
68}