Skip to main content

ftui_demo_showcase/
lib.rs

1#![forbid(unsafe_code)]
2#![allow(dead_code)]
3
4//! FrankenTUI Demo Showcase library.
5//!
6//! This module exposes the demo application internals so that integration tests
7//! can construct screens, render them, and assert snapshots.
8//!
9//! # Role in FrankenTUI
10//! `ftui-demo-showcase` is the primary way to see what the system can do.
11//! It aggregates the visual effects, widgets, layouts, and interaction demos
12//! into a single runnable application.
13//!
14//! # How it fits in the system
15//! The demo showcase is a consumer of all core crates. It exercises the runtime,
16//! render kernel, widgets, and extras in one place, and its screens are used
17//! as the reference for snapshots and visual regression tests.
18
19pub mod app;
20pub mod chrome;
21pub mod cli;
22pub mod data;
23pub mod determinism;
24pub mod screens;
25pub mod test_logging;
26pub mod theme;
27pub mod tour;
28
29/// Debug logging macro for visual render diagnostics (bd-3vbf.31).
30///
31/// Only emits to stderr when `debug-render` feature is enabled.
32/// Usage: `debug_render!("dashboard", "layout={layout:?}, area={area:?}");`
33#[cfg(feature = "debug-render")]
34#[macro_export]
35macro_rules! debug_render {
36    ($component:expr, $($arg:tt)*) => {
37        eprintln!("[debug-render][{}] {}", $component, format_args!($($arg)*));
38    };
39}
40
41#[cfg(not(feature = "debug-render"))]
42#[macro_export]
43macro_rules! debug_render {
44    ($component:expr, $($arg:tt)*) => {};
45}