1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Collected-then-applied interaction bridge.
//!
//! The recursive walker ([`crate::walker::render_node`]) can't mutate the
//! [`MessageProcessor`] while the surface's `data_model` / `components` are
//! borrowed for the duration of a frame's walk. So each egui widget that the
//! user interacts with pushes a [`PendingInteraction`] into a `Vec` carried
//! through the walk, and [`EguiApp::apply_pending`] consumes the vec *after*
//! the walk — once the borrows are dropped.
//!
//! This mirrors the drop-borrows-then-mutate pattern in the ratatui gallery
//! (`dispatch_event_to_focused` drops its borrows before `process_event_result`)
//! and the callback-then-redraw pattern in the Slint host (`handle_activate`
//! scopes its borrow block, then mutates).
use Value;
/// One deferred interaction, collected during a frame's walk and applied after.