Expand description
The Core: one window. It owns everything that survives across frames
and belongs to this window alone (interaction state, scroll and edit
stores, focus) plus the reusable per-frame tree — and the frame-builder
state itself. Builder state living here (not in a borrowing wrapper) is
what lets flat C bindings drive a frame through one opaque pointer; the
Rust Ui is a thin safe façade.
What must not be duplicated per window — the resource registry, the
shaping caches, the glyph atlas and the audio store — lives in the
crate::session::Session a core is constructed against.
Core::new makes a private one, so a single-window app never sees it.
Modules§
- cause
- Why a frame was drawn (backlog F111): two readings a view can take of the frame it is building, for an app that keeps a ledger of its frames and wants to know why one ran with nothing on screen moving.
- devtools
- The devtools panel, drawn by the core into any app’s frame
(
docs/adr/0024-the-devtools-are-the-cores.md). - follow
- A held drag following its scroller
(
docs/adr/0029-a-selection-follows-the-pointer-past-the-edge.md). - inspect
- The frame as a list a tool can read back: every node the last finished
frame laid out, with what it is, where layout put it, and the handful
of declarations that explain the rest. What a devtools tree view and
node inspector are built from (
docs/adr/0021, the harness’s dock).
Structs§
- Core
- Owed
- What a frame left owed, by kind:
Core::owed.any()is whatCore::animatinganswers;beyond_cycles()is the same with a keyframe cycle — which never ends — left out (backlog F64).
Enums§
- Content
- What a node opened through
Core::open_fromholds: a box (left open for its children), a fragment (likewise), acellsgrid or a stroke (leaves, closed by the door).
Traits§
- Extension
- A frontend that draws into the shared tree each frame — the trait the runner uses to host Lua (or any other) extensions without knowing what they are. Origins are assigned by the runner.