Skip to content

feat(core): Pointer over and out events#1601

Open
marc2332 wants to merge 6 commits intomainfrom
feat/pointer-in-out-events
Open

feat(core): Pointer over and out events#1601
marc2332 wants to merge 6 commits intomainfrom
feat/pointer-in-out-events

Conversation

@marc2332
Copy link
Owner

@marc2332 marc2332 commented Mar 6, 2026

Pointer over and out events will now act as the old enter and leave events.

And with the new enter and leave events it is possible to have nested elements that might want to do something (e.g. change cursor) when they become the highest (layer speaking) hovered node. Useful when having nested buttons for instance.

over/out: Cursor is above, even if there are other elements on top.

enter/leave: Cursor is above and there are no other elements on top.

TODO: Refactor does_bubble so that enter/leave events effectively don't bubble.

@marc2332 marc2332 self-assigned this Mar 6, 2026
@marc2332 marc2332 added the enhancement 🔥 New feature or request label Mar 6, 2026
@marc2332 marc2332 moved this to Pending for Review in Freya Planning Mar 6, 2026
@marc2332 marc2332 added this to the 0.4.0 milestone Mar 6, 2026
@github-actions
Copy link

github-actions bot commented Mar 6, 2026

Performance Comparison mainfeat/pointer-in-out-events

Total Elapsed Time: 92.54ms → 92.68ms (+0.1%)
Profiling Mode: alloc - Cumulative allocations during each function call (including nested calls).

+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| Function                                      | Calls                    | Avg                          | P33                            | P66                          | P95                          | P99                          | Total                          | % Total                            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::runner::run_scope                 | 32025 → 32025 (+0.0%)    | 6.7 MB → 6.7 MB (+0.0%)      | 88 B → 88 B (+0.0%)            | 11.7 MB → 11.7 MB (+0.0%)    | 23.4 MB → 23.4 MB (+0.0%)    | 23.4 MB → 23.4 MB (+0.0%)    | 209.4 GB → 209.4 GB (+0.0%)    | 350997.77% → 350997.77% (+0.0%)    |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| dev_perf::main                                | 1 → 1 (+0.0%)            | 61.1 MB → 61.1 MB (+0.0%)    | 61.1 MB → 61.1 MB (+0.0%)      | 61.1 MB → 61.1 MB (+0.0%)    | 61.1 MB → 61.1 MB (+0.0%)    | 61.1 MB → 61.1 MB (+0.0%)    | 61.1 MB → 61.1 MB (+0.0%)      | 100.00% → 100.00% (+0.0%)          |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::runner::sync_and_update           | 3 → 3 (+0.0%)            | 12.5 MB → 12.5 MB (+0.0%)    | 6.0 MB → 6.0 MB (+0.0%)        | 8.1 MB → 8.1 MB (+0.0%)      | 23.5 MB → 23.5 MB (+0.0%)    | 23.5 MB → 23.5 MB (+0.0%)    | 37.5 MB → 37.5 MB (+0.0%)      | 61.44% → 61.44% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::tree::apply_mutations             | 3 → 3 (+0.0%)            | 7.8 MB → 7.8 MB (+0.0%)      | 875.0 KB → 875.0 KB (+0.0%)    | 1.6 MB → 1.6 MB (+0.0%)      | 21.1 MB → 21.1 MB (+0.0%)    | 21.1 MB → 21.1 MB (+0.0%)    | 23.5 MB → 23.5 MB (+0.0%)      | 38.50% → 38.50% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| Scope Rendering                               | 2 → 2 (+0.0%)            | 6.8 MB → 6.8 MB (+0.0%)      | 6.8 MB → 6.8 MB (+0.0%)        | 6.8 MB → 6.8 MB (+0.0%)      | 6.8 MB → 6.8 MB (+0.0%)      | 6.8 MB → 6.8 MB (+0.0%)      | 13.6 MB → 13.6 MB (+0.0%)      | 22.31% → 22.31% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::path_element::diff                | 32025 → 32025 (+0.0%)    | 398 B → 398 B (+0.0%)        | 12 B → 12 B (+0.0%)            | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 12.2 MB → 12.2 MB (+0.0%)      | 19.90% → 19.90% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| text style cascade                            | 3 → 3 (+0.0%)            | 3.9 MB → 3.9 MB (+0.0%)      | 84 B → 84 B (+0.0%)            | 7.8 MB → 7.8 MB (+0.0%)      | 7.8 MB → 7.8 MB (+0.0%)      | 7.8 MB → 7.8 MB (+0.0%)      | 11.7 MB → 11.7 MB (+0.0%)      | 19.11% → 19.11% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::runner::apply_diff                | 6 → 6 (+0.0%)            | 1.5 MB → 1.5 MB (+0.0%)      | 596 B → 596 B (+0.0%)          | 1.4 MB → 1.4 MB (+0.0%)      | 3.3 MB → 3.3 MB (+0.0%)      | 3.3 MB → 3.3 MB (+0.0%)      | 9.2 MB → 9.2 MB (+0.0%)        | 15.10% → 15.10% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| mutations run                                 | 3 → 3 (+0.0%)            | 2.5 MB → 2.5 MB (+0.0%)      | 64 B → 64 B (+0.0%)            | 1.6 MB → 1.6 MB (+0.0%)      | 6.0 MB → 6.0 MB (+0.0%)      | 6.0 MB → 6.0 MB (+0.0%)      | 7.6 MB → 7.6 MB (+0.0%)        | 12.38% → 12.38% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::path_element::from_element        | 32025 → 32025 (+0.0%)    | 227 B → 227 B (+0.0%)        | 12 B → 12 B (+0.0%)            | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 12 B → 12 B (+0.0%)          | 7.0 MB → 7.0 MB (+0.0%)        | 11.39% → 11.39% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| dirty run                                     | 3 → 3 (+0.0%)            | 2.1 MB → 2.1 MB (+0.0%)      | 64 B → 64 B (+0.0%)            | 4.2 MB → 4.2 MB (+0.0%)      | 4.2 MB → 4.2 MB (+0.0%)      | 4.2 MB → 4.2 MB (+0.0%)      | 6.3 MB → 6.3 MB (+0.0%)        | 10.28% → 10.28% (+0.0%)            |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| layer cascade                                 | 3 → 3 (+0.0%)            | 1.9 MB → 1.9 MB (+0.0%)      | 874.5 KB → 874.5 KB (+0.0%)    | 2.8 MB → 2.8 MB (+0.0%)      | 2.8 MB → 2.8 MB (+0.0%)      | 2.8 MB → 2.8 MB (+0.0%)      | 5.6 MB → 5.6 MB (+0.0%)        | 9.09% → 9.09% (+0.0%)              |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| effect cascade                                | 3 → 3 (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)              | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)              | 0.00% → 0.00% (+0.0%)              |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+
| freya_core::runner::handle_events_immediately | 3 → 3 (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)              | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)            | 0 B → 0 B (+0.0%)              | 0.00% → 0.00% (+0.0%)              |
+-----------------------------------------------+--------------------------+------------------------------+--------------------------------+------------------------------+------------------------------+------------------------------+--------------------------------+------------------------------------+

Generated with hotpath-rs

📊 View Raw JSON Metrics

PR Metrics

{
  "hotpath_profiling_mode": "alloc",
  "time_elapsed": "92.68 ms",
  "total_elapsed_ns": 92680183,
  "total_elapsed_raw": 92680183,
  "total_allocated": "88.4 MB",
  "total_allocated_raw": 92680183,
  "description": "Cumulative allocations during each function call (including nested calls).",
  "caller_name": "dev_perf::main",
  "percentiles": [
    33,
    66,
    95,
    99
  ],
  "data": [
    {
      "name": "freya_core::runner::run_scope",
      "calls": 32025,
      "avg": "6.7 MB",
      "avg_raw": 7019413,
      "p66": "11.7 MB",
      "p99": "23.4 MB",
      "p33": "88 B",
      "p95": "23.4 MB",
      "percentiles_raw": {
        "p99": 24575999,
        "p95": 24575999,
        "p33": 88,
        "p66": 12287999
      },
      "total": "209.4 GB",
      "total_raw": 224796724200,
      "percent_total": "350997.77%",
      "percent_total_raw": 35099777
    },
    {
      "name": "dev_perf::main",
      "calls": 1,
      "avg": "61.1 MB",
      "avg_raw": 64045056,
      "p33": "61.1 MB",
      "p99": "61.1 MB",
      "p95": "61.1 MB",
      "p66": "61.1 MB",
      "percentiles_raw": {
        "p33": 64061439,
        "p99": 64061439,
        "p95": 64061439,
        "p66": 64061439
      },
      "total": "61.1 MB",
      "total_raw": 64045056,
      "percent_total": "100.00%",
      "percent_total_raw": 10000
    },
    {
      "name": "freya_core::runner::sync_and_update",
      "calls": 3,
      "avg": "12.5 MB",
      "avg_raw": 13117440,
      "p66": "8.1 MB",
      "p99": "23.5 MB",
      "p95": "23.5 MB",
      "p33": "6.0 MB",
      "percentiles_raw": {
        "p99": 24592383,
        "p33": 6279167,
        "p95": 24592383,
        "p66": 8495103
      },
      "total": "37.5 MB",
      "total_raw": 39352320,
      "percent_total": "61.44%",
      "percent_total_raw": 6144
    },
    {
      "name": "freya_core::tree::apply_mutations",
      "calls": 3,
      "avg": "7.8 MB",
      "avg_raw": 8221098,
      "p33": "875.0 KB",
      "p95": "21.1 MB",
      "p99": "21.1 MB",
      "p66": "1.6 MB",
      "percentiles_raw": {
        "p99": 22085631,
        "p66": 1690623,
        "p33": 895999,
        "p95": 22085631
      },
      "total": "23.5 MB",
      "total_raw": 24663296,
      "percent_total": "38.50%",
      "percent_total_raw": 3850
    },
    {
      "name": "Scope Rendering",
      "calls": 2,
      "avg": "6.8 MB",
      "avg_raw": 7145472,
      "p33": "6.8 MB",
      "p99": "6.8 MB",
      "p95": "6.8 MB",
      "p66": "6.8 MB",
      "percentiles_raw": {
        "p66": 7147519,
        "p33": 7147519,
        "p99": 7147519,
        "p95": 7147519
      },
      "total": "13.6 MB",
      "total_raw": 14290944,
      "percent_total": "22.31%",
      "percent_total_raw": 2231
    },
    {
      "name": "freya_core::path_element::diff",
      "calls": 32025,
      "avg": "398 B",
      "avg_raw": 398,
      "p66": "12 B",
      "p33": "12 B",
      "p95": "12 B",
      "p99": "12 B",
      "percentiles_raw": {
        "p99": 12,
        "p66": 12,
        "p95": 12,
        "p33": 12
      },
      "total": "12.2 MB",
      "total_raw": 12750262,
      "percent_total": "19.90%",
      "percent_total_raw": 1990
    },
    {
      "name": "text style cascade",
      "calls": 3,
      "avg": "3.9 MB",
      "avg_raw": 4080682,
      "p33": "84 B",
      "p66": "7.8 MB",
      "p95": "7.8 MB",
      "p99": "7.8 MB",
      "percentiles_raw": {
        "p33": 84,
        "p95": 8163327,
        "p99": 8163327,
        "p66": 8163327
      },
      "total": "11.7 MB",
      "total_raw": 12242046,
      "percent_total": "19.11%",
      "percent_total_raw": 1911
    },
    {
      "name": "freya_core::runner::apply_diff",
      "calls": 6,
      "avg": "1.5 MB",
      "avg_raw": 1612457,
      "p99": "3.3 MB",
      "p95": "3.3 MB",
      "p33": "596 B",
      "p66": "1.4 MB",
      "percentiles_raw": {
        "p95": 3420159,
        "p99": 3420159,
        "p66": 1418239,
        "p33": 596
      },
      "total": "9.2 MB",
      "total_raw": 9674744,
      "percent_total": "15.10%",
      "percent_total_raw": 1510
    },
    {
      "name": "mutations run",
      "calls": 3,
      "avg": "2.5 MB",
      "avg_raw": 2643477,
      "p66": "1.6 MB",
      "p99": "6.0 MB",
      "p95": "6.0 MB",
      "p33": "64 B",
      "percentiles_raw": {
        "p33": 64,
        "p66": 1690623,
        "p95": 6242303,
        "p99": 6242303
      },
      "total": "7.6 MB",
      "total_raw": 7930431,
      "percent_total": "12.38%",
      "percent_total_raw": 1238
    },
    {
      "name": "freya_core::path_element::from_element",
      "calls": 32025,
      "avg": "227 B",
      "avg_raw": 227,
      "p66": "12 B",
      "p95": "12 B",
      "p33": "12 B",
      "p99": "12 B",
      "percentiles_raw": {
        "p33": 12,
        "p66": 12,
        "p95": 12,
        "p99": 12
      },
      "total": "7.0 MB",
      "total_raw": 7296888,
      "percent_total": "11.39%",
      "percent_total_raw": 1139
    },
    {
      "name": "dirty run",
      "calls": 3,
      "avg": "2.1 MB",
      "avg_raw": 2196512,
      "p95": "4.2 MB",
      "p66": "4.2 MB",
      "p99": "4.2 MB",
      "p33": "64 B",
      "percentiles_raw": {
        "p95": 4395007,
        "p99": 4395007,
        "p66": 4395007,
        "p33": 64
      },
      "total": "6.3 MB",
      "total_raw": 6589536,
      "percent_total": "10.28%",
      "percent_total_raw": 1028
    },
    {
      "name": "layer cascade",
      "calls": 3,
      "avg": "1.9 MB",
      "avg_raw": 1941120,
      "p33": "874.5 KB",
      "p95": "2.8 MB",
      "p99": "2.8 MB",
      "p66": "2.8 MB",
      "percentiles_raw": {
        "p99": 2988031,
        "p95": 2988031,
        "p66": 2988031,
        "p33": 895487
      },
      "total": "5.6 MB",
      "total_raw": 5823360,
      "percent_total": "9.09%",
      "percent_total_raw": 909
    },
    {
      "name": "effect cascade",
      "calls": 3,
      "avg": "0 B",
      "avg_raw": 0,
      "p99": "0 B",
      "p95": "0 B",
      "p33": "0 B",
      "p66": "0 B",
      "percentiles_raw": {
        "p99": 0,
        "p33": 0,
        "p95": 0,
        "p66": 0
      },
      "total": "0 B",
      "total_raw": 0,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    },
    {
      "name": "freya_core::runner::handle_events_immediately",
      "calls": 3,
      "avg": "0 B",
      "avg_raw": 0,
      "p33": "0 B",
      "p99": "0 B",
      "p66": "0 B",
      "p95": "0 B",
      "percentiles_raw": {
        "p33": 0,
        "p66": 0,
        "p99": 0,
        "p95": 0
      },
      "total": "0 B",
      "total_raw": 0,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    }
  ]
}

Main Branch Metrics

{
  "hotpath_profiling_mode": "alloc",
  "time_elapsed": "92.54 ms",
  "total_elapsed_ns": 92544727,
  "total_elapsed_raw": 92544727,
  "total_allocated": "88.3 MB",
  "total_allocated_raw": 92544727,
  "description": "Cumulative allocations during each function call (including nested calls).",
  "caller_name": "dev_perf::main",
  "percentiles": [
    33,
    66,
    95,
    99
  ],
  "data": [
    {
      "name": "freya_core::runner::run_scope",
      "calls": 32025,
      "avg": "6.7 MB",
      "avg_raw": 7019413,
      "p99": "23.4 MB",
      "p95": "23.4 MB",
      "p66": "11.7 MB",
      "p33": "88 B",
      "percentiles_raw": {
        "p99": 24575999,
        "p66": 12287999,
        "p33": 88,
        "p95": 24575999
      },
      "total": "209.4 GB",
      "total_raw": 224796724200,
      "percent_total": "350997.77%",
      "percent_total_raw": 35099777
    },
    {
      "name": "dev_perf::main",
      "calls": 1,
      "avg": "61.1 MB",
      "avg_raw": 64045056,
      "p33": "61.1 MB",
      "p99": "61.1 MB",
      "p95": "61.1 MB",
      "p66": "61.1 MB",
      "percentiles_raw": {
        "p95": 64061439,
        "p33": 64061439,
        "p99": 64061439,
        "p66": 64061439
      },
      "total": "61.1 MB",
      "total_raw": 64045056,
      "percent_total": "100.00%",
      "percent_total_raw": 10000
    },
    {
      "name": "freya_core::runner::sync_and_update",
      "calls": 3,
      "avg": "12.5 MB",
      "avg_raw": 13117440,
      "p33": "6.0 MB",
      "p99": "23.5 MB",
      "p66": "8.1 MB",
      "p95": "23.5 MB",
      "percentiles_raw": {
        "p33": 6279167,
        "p95": 24592383,
        "p99": 24592383,
        "p66": 8495103
      },
      "total": "37.5 MB",
      "total_raw": 39352320,
      "percent_total": "61.44%",
      "percent_total_raw": 6144
    },
    {
      "name": "freya_core::tree::apply_mutations",
      "calls": 3,
      "avg": "7.8 MB",
      "avg_raw": 8221098,
      "p99": "21.1 MB",
      "p95": "21.1 MB",
      "p33": "875.0 KB",
      "p66": "1.6 MB",
      "percentiles_raw": {
        "p33": 895999,
        "p95": 22085631,
        "p99": 22085631,
        "p66": 1690623
      },
      "total": "23.5 MB",
      "total_raw": 24663296,
      "percent_total": "38.50%",
      "percent_total_raw": 3850
    },
    {
      "name": "Scope Rendering",
      "calls": 2,
      "avg": "6.8 MB",
      "avg_raw": 7145472,
      "p33": "6.8 MB",
      "p66": "6.8 MB",
      "p95": "6.8 MB",
      "p99": "6.8 MB",
      "percentiles_raw": {
        "p95": 7147519,
        "p99": 7147519,
        "p33": 7147519,
        "p66": 7147519
      },
      "total": "13.6 MB",
      "total_raw": 14290944,
      "percent_total": "22.31%",
      "percent_total_raw": 2231
    },
    {
      "name": "freya_core::path_element::diff",
      "calls": 32025,
      "avg": "398 B",
      "avg_raw": 398,
      "p99": "12 B",
      "p66": "12 B",
      "p95": "12 B",
      "p33": "12 B",
      "percentiles_raw": {
        "p33": 12,
        "p66": 12,
        "p99": 12,
        "p95": 12
      },
      "total": "12.2 MB",
      "total_raw": 12750262,
      "percent_total": "19.90%",
      "percent_total_raw": 1990
    },
    {
      "name": "text style cascade",
      "calls": 3,
      "avg": "3.9 MB",
      "avg_raw": 4080682,
      "p33": "84 B",
      "p95": "7.8 MB",
      "p99": "7.8 MB",
      "p66": "7.8 MB",
      "percentiles_raw": {
        "p66": 8163327,
        "p99": 8163327,
        "p33": 84,
        "p95": 8163327
      },
      "total": "11.7 MB",
      "total_raw": 12242046,
      "percent_total": "19.11%",
      "percent_total_raw": 1911
    },
    {
      "name": "freya_core::runner::apply_diff",
      "calls": 6,
      "avg": "1.5 MB",
      "avg_raw": 1612457,
      "p99": "3.3 MB",
      "p33": "596 B",
      "p95": "3.3 MB",
      "p66": "1.4 MB",
      "percentiles_raw": {
        "p33": 596,
        "p99": 3420159,
        "p66": 1418239,
        "p95": 3420159
      },
      "total": "9.2 MB",
      "total_raw": 9674744,
      "percent_total": "15.10%",
      "percent_total_raw": 1510
    },
    {
      "name": "mutations run",
      "calls": 3,
      "avg": "2.5 MB",
      "avg_raw": 2643477,
      "p95": "6.0 MB",
      "p99": "6.0 MB",
      "p33": "64 B",
      "p66": "1.6 MB",
      "percentiles_raw": {
        "p33": 64,
        "p66": 1690623,
        "p99": 6242303,
        "p95": 6242303
      },
      "total": "7.6 MB",
      "total_raw": 7930431,
      "percent_total": "12.38%",
      "percent_total_raw": 1238
    },
    {
      "name": "freya_core::path_element::from_element",
      "calls": 32025,
      "avg": "227 B",
      "avg_raw": 227,
      "p99": "12 B",
      "p95": "12 B",
      "p66": "12 B",
      "p33": "12 B",
      "percentiles_raw": {
        "p66": 12,
        "p99": 12,
        "p33": 12,
        "p95": 12
      },
      "total": "7.0 MB",
      "total_raw": 7296888,
      "percent_total": "11.39%",
      "percent_total_raw": 1139
    },
    {
      "name": "dirty run",
      "calls": 3,
      "avg": "2.1 MB",
      "avg_raw": 2196512,
      "p66": "4.2 MB",
      "p95": "4.2 MB",
      "p33": "64 B",
      "p99": "4.2 MB",
      "percentiles_raw": {
        "p95": 4395007,
        "p66": 4395007,
        "p33": 64,
        "p99": 4395007
      },
      "total": "6.3 MB",
      "total_raw": 6589536,
      "percent_total": "10.28%",
      "percent_total_raw": 1028
    },
    {
      "name": "layer cascade",
      "calls": 3,
      "avg": "1.9 MB",
      "avg_raw": 1941120,
      "p33": "874.5 KB",
      "p66": "2.8 MB",
      "p99": "2.8 MB",
      "p95": "2.8 MB",
      "percentiles_raw": {
        "p33": 895487,
        "p66": 2988031,
        "p95": 2988031,
        "p99": 2988031
      },
      "total": "5.6 MB",
      "total_raw": 5823360,
      "percent_total": "9.09%",
      "percent_total_raw": 909
    },
    {
      "name": "effect cascade",
      "calls": 3,
      "avg": "0 B",
      "avg_raw": 0,
      "p33": "0 B",
      "p66": "0 B",
      "p95": "0 B",
      "p99": "0 B",
      "percentiles_raw": {
        "p99": 0,
        "p66": 0,
        "p95": 0,
        "p33": 0
      },
      "total": "0 B",
      "total_raw": 0,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    },
    {
      "name": "freya_core::runner::handle_events_immediately",
      "calls": 3,
      "avg": "0 B",
      "avg_raw": 0,
      "p66": "0 B",
      "p33": "0 B",
      "p99": "0 B",
      "p95": "0 B",
      "percentiles_raw": {
        "p33": 0,
        "p99": 0,
        "p95": 0,
        "p66": 0
      },
      "total": "0 B",
      "total_raw": 0,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    }
  ]
}

@github-actions
Copy link

github-actions bot commented Mar 6, 2026

Performance Comparison mainfeat/pointer-in-out-events

Total Elapsed Time: 72.36ms → 69.27ms (-4.3%)
Profiling Mode: timing - Execution duration of functions.

+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| Function                                      | Calls                    | Avg                            | P33                              | P66                             | P95                              | P99                              | Total                          | % Total                      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| dev_perf::main                                | 1 → 1 (+0.0%)            | 71.61ms → 68.54ms (-4.3%)      | 71.63ms → 68.55ms (-4.3%)        | 71.63ms → 68.55ms (-4.3%)       | 71.63ms → 68.55ms (-4.3%)        | 71.63ms → 68.55ms (-4.3%)        | 71.61ms → 68.54ms (-4.3%)      | 100.00% → 100.00% (+0.0%)    |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::runner::run_scope                 | 32025 → 32025 (+0.0%)    | 1.69µs → 1.69µs (-0.4%)        | 10.00ns → 10.00ns (+0.0%)        | 10.00ns → 10.00ns (+0.0%)       | 20.00ns → 20.00ns (+0.0%)        | 21.00ns → 21.00ns (+0.0%)        | 54.21ms → 54.02ms (-0.4%)      | 75.70% → 78.81% (+4.1%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::runner::sync_and_update           | 3 → 3 (+0.0%)            | 13.66ms → 13.54ms (-0.9%)      | 8.72ms → 8.34ms (-4.5%)          | 8.90ms → 9.03ms (+1.5%)         | 23.36ms → 23.27ms (-0.4%)        | 23.36ms → 23.27ms (-0.4%)        | 40.97ms → 40.62ms (-0.9%)      | 57.21% → 59.26% (+3.6%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::tree::apply_mutations             | 3 → 3 (+0.0%)            | 9.82ms → 8.96ms (-8.8%)        | 2.72ms → 1.90ms (-30.1%) 🚀      | 9.81ms → 8.45ms (-13.9%)        | 16.94ms → 16.53ms (-2.4%)        | 16.94ms → 16.53ms (-2.4%)        | 29.46ms → 26.87ms (-8.8%)      | 41.13% → 39.19% (-4.7%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::path_element::diff                | 32025 → 32025 (+0.0%)    | 522.00ns → 519.00ns (-0.6%)    | 30.00ns → 30.00ns (+0.0%)        | 50.00ns → 50.00ns (+0.0%)       | 160.00ns → 160.00ns (+0.0%)      | 1.15µs → 1.16µs (+1.0%)          | 16.74ms → 16.63ms (-0.7%)      | 23.38% → 24.26% (+3.8%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::path_element::from_element        | 32025 → 32025 (+0.0%)    | 472.00ns → 481.00ns (+1.9%)    | 20.00ns → 20.00ns (+0.0%)        | 20.00ns → 20.00ns (+0.0%)       | 40.00ns → 40.00ns (+0.0%)        | 50.00ns → 51.00ns (+2.0%)        | 15.12ms → 15.42ms (+2.0%)      | 21.11% → 22.49% (+6.5%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| mutations run                                 | 3 → 3 (+0.0%)            | 4.39ms → 3.91ms (-11.0%)       | 4.19µs → 3.14µs (-25.1%) 🚀      | 3.37ms → 3.28ms (-2.6%)         | 9.81ms → 8.44ms (-14.0%)         | 9.81ms → 8.44ms (-14.0%)         | 13.17ms → 11.72ms (-11.0%)     | 18.39% → 17.09% (-7.1%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| Scope Rendering                               | 2 → 2 (+0.0%)            | 4.64ms → 4.52ms (-2.6%)        | 4.64ms → 4.36ms (-5.9%)          | 4.65ms → 4.68ms (+0.6%)         | 4.65ms → 4.68ms (+0.6%)          | 4.65ms → 4.68ms (+0.6%)          | 9.28ms → 9.04ms (-2.6%)        | 12.95% → 13.18% (+1.8%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::runner::apply_diff                | 6 → 6 (+0.0%)            | 1.33ms → 1.29ms (-3.5%)        | 4.61µs → 4.75µs (+3.0%)          | 1.73ms → 1.63ms (-6.0%)         | 2.68ms → 2.51ms (-6.4%)          | 2.68ms → 2.51ms (-6.4%)          | 8.00ms → 7.73ms (-3.5%)        | 11.17% → 11.27% (+0.9%)      |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| dirty run                                     | 3 → 3 (+0.0%)            | 1.95ms → 1.94ms (-0.7%)        | 401.00ns → 211.00ns (-47.4%) 🚀  | 1.88µs → 1.45µs (-22.9%) 🚀     | 5.85ms → 5.81ms (-0.7%)          | 5.85ms → 5.81ms (-0.7%)          | 5.85ms → 5.81ms (-0.7%)        | 8.16% → 8.47% (+3.8%)        |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| text style cascade                            | 3 → 3 (+0.0%)            | 1.66ms → 1.59ms (-3.8%)        | 120.00ns → 30.00ns (-75.0%) 🚀   | 1.24µs → 802.00ns (-35.4%) 🚀   | 4.96ms → 4.78ms (-3.8%)          | 4.96ms → 4.78ms (-3.8%)          | 4.97ms → 4.78ms (-3.8%)        | 6.93% → 6.96% (+0.4%)        |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| layer cascade                                 | 3 → 3 (+0.0%)            | 1.77ms → 1.48ms (-16.8%)       | 130.00ns → 40.00ns (-69.2%) 🚀   | 2.62ms → 1.89ms (-27.6%) 🚀     | 2.71ms → 2.54ms (-6.3%)          | 2.71ms → 2.54ms (-6.3%)          | 5.32ms → 4.43ms (-16.8%)       | 7.43% → 6.46% (-13.1%)       |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| freya_core::runner::handle_events_immediately | 3 → 3 (+0.0%)            | 270.00ns → 277.00ns (+2.6%)    | 220.00ns → 251.00ns (+14.1%)     | 251.00ns → 251.00ns (+0.0%)     | 341.00ns → 331.00ns (-2.9%)      | 341.00ns → 331.00ns (-2.9%)      | 812.00ns → 833.00ns (+2.6%)    | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+
| effect cascade                                | 3 → 3 (+0.0%)            | 134.00ns → 127.00ns (-5.2%)    | 121.00ns → 50.00ns (-58.7%) 🚀   | 140.00ns → 160.00ns (+14.3%)    | 141.00ns → 171.00ns (+21.3%) ⚠️  | 141.00ns → 171.00ns (+21.3%) ⚠️  | 402.00ns → 381.00ns (-5.2%)    | 0.00% → 0.00% (+0.0%)        |
+-----------------------------------------------+--------------------------+--------------------------------+----------------------------------+---------------------------------+----------------------------------+----------------------------------+--------------------------------+------------------------------+

Generated with hotpath-rs

📊 View Raw JSON Metrics

PR Metrics

{
  "hotpath_profiling_mode": "timing",
  "time_elapsed": "69.27 ms",
  "total_elapsed_ns": 69266931,
  "total_elapsed_raw": 69266931,
  "description": "Execution duration of functions.",
  "caller_name": "dev_perf::main",
  "percentiles": [
    33,
    66,
    95,
    99
  ],
  "data": [
    {
      "name": "dev_perf::main",
      "calls": 1,
      "avg": "68.54 ms",
      "avg_raw": 68542690,
      "p66": "68.55 ms",
      "p99": "68.55 ms",
      "p95": "68.55 ms",
      "p33": "68.55 ms",
      "percentiles_raw": {
        "p66": 68550655,
        "p99": 68550655,
        "p33": 68550655,
        "p95": 68550655
      },
      "total": "68.54 ms",
      "total_raw": 68542690,
      "percent_total": "100.00%",
      "percent_total_raw": 10000
    },
    {
      "name": "freya_core::runner::run_scope",
      "calls": 32025,
      "avg": "1.69 µs",
      "avg_raw": 1686,
      "p33": "10 ns",
      "p99": "21 ns",
      "p95": "20 ns",
      "p66": "10 ns",
      "percentiles_raw": {
        "p66": 10,
        "p99": 21,
        "p33": 10,
        "p95": 20
      },
      "total": "54.02 ms",
      "total_raw": 54019247,
      "percent_total": "78.81%",
      "percent_total_raw": 7881
    },
    {
      "name": "freya_core::runner::sync_and_update",
      "calls": 3,
      "avg": "13.54 ms",
      "avg_raw": 13540030,
      "p33": "8.34 ms",
      "p95": "23.27 ms",
      "p66": "9.03 ms",
      "p99": "23.27 ms",
      "percentiles_raw": {
        "p66": 9027583,
        "p95": 23265279,
        "p33": 8335359,
        "p99": 23265279
      },
      "total": "40.62 ms",
      "total_raw": 40620092,
      "percent_total": "59.26%",
      "percent_total_raw": 5926
    },
    {
      "name": "freya_core::tree::apply_mutations",
      "calls": 3,
      "avg": "8.96 ms",
      "avg_raw": 8955695,
      "p33": "1.90 ms",
      "p95": "16.53 ms",
      "p99": "16.53 ms",
      "p66": "8.45 ms",
      "percentiles_raw": {
        "p66": 8445951,
        "p33": 1900543,
        "p99": 16531455,
        "p95": 16531455
      },
      "total": "26.87 ms",
      "total_raw": 26867086,
      "percent_total": "39.19%",
      "percent_total_raw": 3919
    },
    {
      "name": "freya_core::path_element::diff",
      "calls": 32025,
      "avg": "519 ns",
      "avg_raw": 519,
      "p66": "50 ns",
      "p99": "1.16 µs",
      "p33": "30 ns",
      "p95": "160 ns",
      "percentiles_raw": {
        "p66": 50,
        "p99": 1163,
        "p33": 30,
        "p95": 160
      },
      "total": "16.63 ms",
      "total_raw": 16632109,
      "percent_total": "24.26%",
      "percent_total_raw": 2426
    },
    {
      "name": "freya_core::path_element::from_element",
      "calls": 32025,
      "avg": "481 ns",
      "avg_raw": 481,
      "p99": "51 ns",
      "p33": "20 ns",
      "p95": "40 ns",
      "p66": "20 ns",
      "percentiles_raw": {
        "p66": 20,
        "p33": 20,
        "p99": 51,
        "p95": 40
      },
      "total": "15.42 ms",
      "total_raw": 15420625,
      "percent_total": "22.49%",
      "percent_total_raw": 2249
    },
    {
      "name": "mutations run",
      "calls": 3,
      "avg": "3.91 ms",
      "avg_raw": 3906663,
      "p95": "8.44 ms",
      "p99": "8.44 ms",
      "p66": "3.28 ms",
      "p33": "3.14 µs",
      "percentiles_raw": {
        "p33": 3137,
        "p66": 3280895,
        "p99": 8437759,
        "p95": 8437759
      },
      "total": "11.72 ms",
      "total_raw": 11719990,
      "percent_total": "17.09%",
      "percent_total_raw": 1709
    },
    {
      "name": "Scope Rendering",
      "calls": 2,
      "avg": "4.52 ms",
      "avg_raw": 4518291,
      "p95": "4.68 ms",
      "p33": "4.36 ms",
      "p66": "4.68 ms",
      "p99": "4.68 ms",
      "percentiles_raw": {
        "p33": 4362239,
        "p66": 4677631,
        "p95": 4677631,
        "p99": 4677631
      },
      "total": "9.04 ms",
      "total_raw": 9036582,
      "percent_total": "13.18%",
      "percent_total_raw": 1318
    },
    {
      "name": "freya_core::runner::apply_diff",
      "calls": 6,
      "avg": "1.29 ms",
      "avg_raw": 1287762,
      "p66": "1.63 ms",
      "p33": "4.75 µs",
      "p99": "2.51 ms",
      "p95": "2.51 ms",
      "percentiles_raw": {
        "p66": 1630207,
        "p99": 2512895,
        "p33": 4751,
        "p95": 2512895
      },
      "total": "7.73 ms",
      "total_raw": 7726577,
      "percent_total": "11.27%",
      "percent_total_raw": 1127
    },
    {
      "name": "dirty run",
      "calls": 3,
      "avg": "1.94 ms",
      "avg_raw": 1936499,
      "p99": "5.81 ms",
      "p66": "1.45 µs",
      "p33": "211 ns",
      "p95": "5.81 ms",
      "percentiles_raw": {
        "p95": 5808127,
        "p33": 211,
        "p99": 5808127,
        "p66": 1453
      },
      "total": "5.81 ms",
      "total_raw": 5809497,
      "percent_total": "8.47%",
      "percent_total_raw": 847
    },
    {
      "name": "text style cascade",
      "calls": 3,
      "avg": "1.59 ms",
      "avg_raw": 1591935,
      "p95": "4.78 ms",
      "p33": "30 ns",
      "p66": "802 ns",
      "p99": "4.78 ms",
      "percentiles_raw": {
        "p33": 30,
        "p99": 4775935,
        "p66": 802,
        "p95": 4775935
      },
      "total": "4.78 ms",
      "total_raw": 4775805,
      "percent_total": "6.96%",
      "percent_total_raw": 696
    },
    {
      "name": "layer cascade",
      "calls": 3,
      "avg": "1.48 ms",
      "avg_raw": 1477134,
      "p99": "2.54 ms",
      "p66": "1.89 ms",
      "p95": "2.54 ms",
      "p33": "40 ns",
      "percentiles_raw": {
        "p95": 2539519,
        "p33": 40,
        "p66": 1893375,
        "p99": 2539519
      },
      "total": "4.43 ms",
      "total_raw": 4431404,
      "percent_total": "6.46%",
      "percent_total_raw": 646
    },
    {
      "name": "freya_core::runner::handle_events_immediately",
      "calls": 3,
      "avg": "277 ns",
      "avg_raw": 277,
      "p95": "331 ns",
      "p99": "331 ns",
      "p33": "251 ns",
      "p66": "251 ns",
      "percentiles_raw": {
        "p99": 331,
        "p66": 251,
        "p95": 331,
        "p33": 251
      },
      "total": "833 ns",
      "total_raw": 833,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    },
    {
      "name": "effect cascade",
      "calls": 3,
      "avg": "127 ns",
      "avg_raw": 127,
      "p66": "160 ns",
      "p95": "171 ns",
      "p99": "171 ns",
      "p33": "50 ns",
      "percentiles_raw": {
        "p99": 171,
        "p33": 50,
        "p66": 160,
        "p95": 171
      },
      "total": "381 ns",
      "total_raw": 381,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    }
  ]
}

Main Branch Metrics

{
  "hotpath_profiling_mode": "timing",
  "time_elapsed": "72.36 ms",
  "total_elapsed_ns": 72359341,
  "total_elapsed_raw": 72359341,
  "description": "Execution duration of functions.",
  "caller_name": "dev_perf::main",
  "percentiles": [
    33,
    66,
    95,
    99
  ],
  "data": [
    {
      "name": "dev_perf::main",
      "calls": 1,
      "avg": "71.61 ms",
      "avg_raw": 71609135,
      "p99": "71.63 ms",
      "p66": "71.63 ms",
      "p33": "71.63 ms",
      "p95": "71.63 ms",
      "percentiles_raw": {
        "p95": 71630847,
        "p33": 71630847,
        "p66": 71630847,
        "p99": 71630847
      },
      "total": "71.61 ms",
      "total_raw": 71609135,
      "percent_total": "100.00%",
      "percent_total_raw": 10000
    },
    {
      "name": "freya_core::runner::run_scope",
      "calls": 32025,
      "avg": "1.69 µs",
      "avg_raw": 1692,
      "p33": "10 ns",
      "p95": "20 ns",
      "p99": "21 ns",
      "p66": "10 ns",
      "percentiles_raw": {
        "p95": 20,
        "p66": 10,
        "p99": 21,
        "p33": 10
      },
      "total": "54.21 ms",
      "total_raw": 54214323,
      "percent_total": "75.70%",
      "percent_total_raw": 7570
    },
    {
      "name": "freya_core::runner::sync_and_update",
      "calls": 3,
      "avg": "13.66 ms",
      "avg_raw": 13657541,
      "p33": "8.72 ms",
      "p66": "8.90 ms",
      "p95": "23.36 ms",
      "p99": "23.36 ms",
      "percentiles_raw": {
        "p33": 8724479,
        "p99": 23363583,
        "p66": 8896511,
        "p95": 23363583
      },
      "total": "40.97 ms",
      "total_raw": 40972623,
      "percent_total": "57.21%",
      "percent_total_raw": 5721
    },
    {
      "name": "freya_core::tree::apply_mutations",
      "calls": 3,
      "avg": "9.82 ms",
      "avg_raw": 9819379,
      "p99": "16.94 ms",
      "p66": "9.81 ms",
      "p33": "2.72 ms",
      "p95": "16.94 ms",
      "percentiles_raw": {
        "p33": 2719743,
        "p99": 16941055,
        "p95": 16941055,
        "p66": 9805823
      },
      "total": "29.46 ms",
      "total_raw": 29458139,
      "percent_total": "41.13%",
      "percent_total_raw": 4113
    },
    {
      "name": "freya_core::path_element::diff",
      "calls": 32025,
      "avg": "522 ns",
      "avg_raw": 522,
      "p66": "50 ns",
      "p33": "30 ns",
      "p99": "1.15 µs",
      "p95": "160 ns",
      "percentiles_raw": {
        "p66": 50,
        "p99": 1152,
        "p95": 160,
        "p33": 30
      },
      "total": "16.74 ms",
      "total_raw": 16744979,
      "percent_total": "23.38%",
      "percent_total_raw": 2338
    },
    {
      "name": "freya_core::path_element::from_element",
      "calls": 32025,
      "avg": "472 ns",
      "avg_raw": 472,
      "p95": "40 ns",
      "p99": "50 ns",
      "p33": "20 ns",
      "p66": "20 ns",
      "percentiles_raw": {
        "p99": 50,
        "p33": 20,
        "p66": 20,
        "p95": 40
      },
      "total": "15.12 ms",
      "total_raw": 15116778,
      "percent_total": "21.11%",
      "percent_total_raw": 2111
    },
    {
      "name": "mutations run",
      "calls": 3,
      "avg": "4.39 ms",
      "avg_raw": 4390198,
      "p33": "4.19 µs",
      "p95": "9.81 ms",
      "p66": "3.37 ms",
      "p99": "9.81 ms",
      "percentiles_raw": {
        "p66": 3366911,
        "p33": 4191,
        "p95": 9805823,
        "p99": 9805823
      },
      "total": "13.17 ms",
      "total_raw": 13170596,
      "percent_total": "18.39%",
      "percent_total_raw": 1839
    },
    {
      "name": "Scope Rendering",
      "calls": 2,
      "avg": "4.64 ms",
      "avg_raw": 4639978,
      "p95": "4.65 ms",
      "p99": "4.65 ms",
      "p66": "4.65 ms",
      "p33": "4.64 ms",
      "percentiles_raw": {
        "p66": 4648959,
        "p95": 4648959,
        "p33": 4636671,
        "p99": 4648959
      },
      "total": "9.28 ms",
      "total_raw": 9279957,
      "percent_total": "12.95%",
      "percent_total_raw": 1295
    },
    {
      "name": "freya_core::runner::apply_diff",
      "calls": 6,
      "avg": "1.33 ms",
      "avg_raw": 1333846,
      "p33": "4.61 µs",
      "p66": "1.73 ms",
      "p95": "2.68 ms",
      "p99": "2.68 ms",
      "percentiles_raw": {
        "p99": 2684927,
        "p95": 2684927,
        "p33": 4611,
        "p66": 1733631
      },
      "total": "8.00 ms",
      "total_raw": 8003080,
      "percent_total": "11.17%",
      "percent_total_raw": 1117
    },
    {
      "name": "dirty run",
      "calls": 3,
      "avg": "1.95 ms",
      "avg_raw": 1949681,
      "p33": "401 ns",
      "p99": "5.85 ms",
      "p66": "1.88 µs",
      "p95": "5.85 ms",
      "percentiles_raw": {
        "p99": 5849087,
        "p33": 401,
        "p66": 1884,
        "p95": 5849087
      },
      "total": "5.85 ms",
      "total_raw": 5849043,
      "percent_total": "8.16%",
      "percent_total_raw": 816
    },
    {
      "name": "layer cascade",
      "calls": 3,
      "avg": "1.77 ms",
      "avg_raw": 1774868,
      "p66": "2.62 ms",
      "p33": "130 ns",
      "p99": "2.71 ms",
      "p95": "2.71 ms",
      "percentiles_raw": {
        "p99": 2711551,
        "p33": 130,
        "p66": 2615295,
        "p95": 2711551
      },
      "total": "5.32 ms",
      "total_raw": 5324606,
      "percent_total": "7.43%",
      "percent_total_raw": 743
    },
    {
      "name": "text style cascade",
      "calls": 3,
      "avg": "1.66 ms",
      "avg_raw": 1655072,
      "p66": "1.24 µs",
      "p95": "4.96 ms",
      "p33": "120 ns",
      "p99": "4.96 ms",
      "percentiles_raw": {
        "p66": 1242,
        "p33": 120,
        "p99": 4964351,
        "p95": 4964351
      },
      "total": "4.97 ms",
      "total_raw": 4965218,
      "percent_total": "6.93%",
      "percent_total_raw": 693
    },
    {
      "name": "freya_core::runner::handle_events_immediately",
      "calls": 3,
      "avg": "270 ns",
      "avg_raw": 270,
      "p66": "251 ns",
      "p95": "341 ns",
      "p33": "220 ns",
      "p99": "341 ns",
      "percentiles_raw": {
        "p66": 251,
        "p95": 341,
        "p33": 220,
        "p99": 341
      },
      "total": "812 ns",
      "total_raw": 812,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    },
    {
      "name": "effect cascade",
      "calls": 3,
      "avg": "134 ns",
      "avg_raw": 134,
      "p33": "121 ns",
      "p66": "140 ns",
      "p99": "141 ns",
      "p95": "141 ns",
      "percentiles_raw": {
        "p95": 141,
        "p33": 121,
        "p66": 140,
        "p99": 141
      },
      "total": "402 ns",
      "total_raw": 402,
      "percent_total": "0.00%",
      "percent_total_raw": 0
    }
  ]
}

@codecov
Copy link

codecov bot commented Mar 7, 2026

Codecov Report

❌ Patch coverage is 95.85987% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.19%. Comparing base (868ffad) to head (c4e0293).
⚠️ Report is 16 commits behind head on main.

Files with missing lines Patch % Lines
crates/ragnarok/src/name.rs 0.00% 9 Missing ⚠️
crates/freya-components/src/button.rs 50.00% 3 Missing ⚠️
crates/freya-core/src/events/name.rs 96.55% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1601      +/-   ##
==========================================
+ Coverage   60.84%   61.19%   +0.35%     
==========================================
  Files         290      290              
  Lines       35706    36121     +415     
==========================================
+ Hits        21725    22105     +380     
- Misses      13981    14016      +35     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement 🔥 New feature or request

Projects

Status: Pending for Review

Development

Successfully merging this pull request may close these issues.

1 participant