Skip to main content

lumen_scene/
lib.rs

1//! The scene: turning an app's markup into entities, and keeping them in
2//! step with its state.
3//!
4//! This is the half of a Lumen app that has no host in it. It spawns the
5//! element tree from the IR the compiler produced, reconciles the parts of
6//! that tree that depend on state (`<for>` rows, `<if>` branches, dialogs),
7//! instantiates fragments, and resolves navigation between pages. What it
8//! never does is lay out, paint, or talk to an OS: that is the host's half,
9//! and it is why the same scene runs on a desktop window and in a browser
10//! document.
11//!
12//! Most of this registers nothing. A host adds the systems it wants, in the
13//! order its own pipeline needs. The two exceptions install as a unit because
14//! their internal order is not the host's to choose:
15//! [`routing::install_routing`], whose resolver has to run before the
16//! reconciler it drives, and [`dom::install_dom`], whose applier has to run
17//! after the collector that fills it.
18
19#![warn(missing_docs)]
20
21pub mod compiler_plugins;
22pub mod computed;
23pub mod dom;
24pub mod fragments;
25pub mod i18n;
26pub mod routing;
27pub mod script_commands;
28pub mod script_host;
29pub mod source_parser;
30pub mod spawn;