//! Shared explicit-construction UI substrate for RUIN. //! //! This crate intentionally starts with explicit Rust data construction rather than a proc-macro //! authoring layer. The goal is to validate the threading, windowing, and scene handoff model //! before committing to ergonomic surface syntax. Concrete platform and renderer backends live in //! sibling crates. pub(crate) mod trace_targets { pub const PLATFORM: &str = "ruin_ui::platform"; pub const SCENE: &str = "ruin_ui::scene"; } mod layout; mod platform; mod runtime; mod scene; mod text; mod tree; mod window; pub use layout::{layout_scene, layout_scene_with_text_system}; pub use platform::{PlatformClosed, PlatformEvent, PlatformProxy, PlatformRuntime, start_headless}; pub use runtime::{EventStreamClosed, UiRuntime, WindowController}; pub use scene::{ Color, DisplayItem, GlyphInstance, Point, PreparedText, Quad, Rect, SceneSnapshot, Translation, UiSize, }; pub use text::{TextAlign, TextStyle, TextSystem, TextWrap}; pub use tree::{Edges, Element, FlexDirection, Style}; pub use window::{ DecorationMode, WindowConfigured, WindowId, WindowLifecycle, WindowSpec, WindowUpdate, };