retach 0.10.0

Persistent terminal sessions with native scrollback passthrough
Documentation
//! retach — terminal multiplexer with native scrollback passthrough.
//!
//! This crate provides a headless terminal emulator ([`screen::Screen`])
//! that can be used as a library for building terminal-aware applications.
//!
//! # Example
//!
//! ```rust
//! use retach::screen::Screen;
//!
//! let mut screen = Screen::new(80, 24, 1000);
//! screen.process(b"Hello \x1b[1mWorld\x1b[0m");
//!
//! for row in screen.visible_rows() {
//!     for cell in row.iter() {
//!         let style = screen.resolve_style(cell.style_id);
//!         // render cell.c with style
//!     }
//! }
//! ```
//!
//! Render emulator state as ANSI for a real terminal (incremental,
//! dirty-tracked):
//!
//! ```rust
//! use retach::screen::{AnsiRenderer, Screen};
//!
//! let mut screen = Screen::new(80, 24, 1000);
//! let mut renderer = AnsiRenderer::new();
//!
//! screen.process(b"Hello\r\n");
//! let full = renderer.render(&screen, true);      // complete redraw
//! screen.process(b"World");
//! let delta = renderer.render(&screen, false);    // only changed rows
//! assert!(!full.is_empty());
//! assert!(delta.len() < full.len()); // incremental update is smaller
//! ```

pub mod screen;