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
44
45
46
47
48
49
50
51
//! Lower `.crepus` templates to a JSON view tree for SwiftUI, Jetpack Compose, and future
//! `android-activity` / `objc2` shells.
//!
//! ## Crate layout
//! - [`ir`] — serializable `ViewIr` / `ViewNode` / `ViewStyle` (the **contract** with shells).
//! - [`style`] — Tailwind-like class → style hints (extend here for GPUI parity).
//! - `include_expand` — `include` → `(Vec<Node>, TemplateContext)` without IR cycles.
//! - `render` — AST lowering and public `render_*` entry points.
//! - [`mutations`] — renderer-agnostic, path-based IR mutations and diffing.
//! - [`hot_reload`] — structured hot-reload protocol + conservative AST gate.
//!
//! ## Sharing / codegen (bindgen, other repos)
//! - **[`bindgen`](https://docs.rs/bindgen)** generates **Rust FFI** from **C/C++ headers**. It does
//! not extract types from Rust for Swift/Kotlin, and it does not import arbitrary “other project”
//! sources—it wraps existing native (C) APIs.
//! - **Single source of truth** options that *do* fit native shells:
//! - **`schemars`** on `ViewIr` + **JSON Schema** → *quicktype*, *OpenAPI generators*, etc. for Swift/Kotlin.
//! - A tiny **build.rs** that emits `fixture.json` and optional bindings (same repo or **path dependency** / **git submodule**).
//! - Publish **`crepuscularity-native`** to crates.io and depend on it from another Rust workspace as usual.
//!
//! ## Coverage vs GPUI / web
//! Not 100% parity with GPUI `styler.rs`—expand [`style`].
pub use resolve_rgba;
pub use ;
pub use ;
pub use ;
pub use ;
/// Serialize IR to JSON (compact).
/// Serialize IR to pretty-printed JSON (fixtures / debugging).