urushi_tui/lib.rs
1//! Full-screen terminal UI building blocks for Urushi.
2//!
3//! [`Screen`] is the synchronous presentation engine: it owns Urushi cell
4//! buffers and frame history and writes committed changes through a caller's
5//! [`urushi_terminal::CommandWriter`]. It does not own input, terminal queries,
6//! raw mode, session restoration, an application model, or an async runtime.
7//! Callers drive it synchronously from their own loop.
8//!
9//! [`terminal`] contains the [`Screen`] and [`Frame`] presentation API.
10//!
11//! # Cargo features
12//!
13//! - `crossterm` is enabled by default and re-exports the portable Crossterm
14//! backend. Disable default features when the caller supplies another
15//! [`urushi_terminal::CommandWriter`].
16
17mod cell;
18pub mod terminal;
19
20pub use terminal::{Frame, Rect, Screen};
21pub use urushi_terminal::{Position, TerminalSize};
22
23#[cfg(feature = "crossterm")]
24pub use urushi_terminal::backend::crossterm;