Skip to main content

Crate lumen_scene

Crate lumen_scene 

Source
Expand description

The scene: turning an app’s markup into entities, and keeping them in step with its state.

This is the half of a Lumen app that has no host in it. It spawns the element tree from the IR the compiler produced, reconciles the parts of that tree that depend on state (<for> rows, <if> branches, dialogs), instantiates fragments, and resolves navigation between pages. What it never does is lay out, paint, or talk to an OS: that is the host’s half, and it is why the same scene runs on a desktop window and in a browser document.

Most of this registers nothing. A host adds the systems it wants, in the order its own pipeline needs. The two exceptions install as a unit because their internal order is not the host’s to choose: routing::install_routing, whose resolver has to run before the reconciler it drives, and dom::install_dom, whose applier has to run after the collector that fills it.

Modules§

compiler_plugins
Injected compiler-plugin boundary.
computed
An element’s computed style: the components its resolved attributes become, built one way for spawning and for a restyle.
dom
The dynamic DOM: the tree a script reads, and the mutations it issues.
fragments
Fragments at run time: the app’s declared fragment set, the marker a fragment instance carries, and the argument binding an instantiation resolves its placeholders against.
i18n
Rebuilding what the tree says when the app changes locale.
routing
Navigating between the pages of one app.
script_commands
Applying the script commands that touch nothing but the scene.
script_host
The per-host half of the script wiring, installed once for each active ScriptHost.
source_parser
Injected source front-end - the markup + CSS parser boundary.
spawn
LayoutIR::spawn_into walks the IR tree and spawns entities into the main world.