tv 0.1.1

Terminal User Interface library
Documentation
//! tv - A terminal manipulation library
//!
//! tv provides a simple API for building terminal user interfaces.
//!
//! # Example
//! ```ignore
//! use tv::{Screen, Color, Attr};
//!
//! let mut scr = Screen::init()?;
//! scr.move_print(5, 10, "Hello, World!")?;
//! scr.add_attribute(Attr::BOLD)?;
//! scr.print("Bold text")?;
//! scr.refresh()?;
//! scr.get_char()?;
//! scr.endwin()?;
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```

mod acs;
mod attr;
mod backend;
mod cell;
mod color;
mod delta;
mod error;
mod image;
mod input;
mod kitty;
mod layer;
mod mosaic;
mod platform_io;
mod screen;
mod surface;

pub use acs::{
    ACS_BLOCK, ACS_BOARD, ACS_BTEE, ACS_BULLET, ACS_CKBOARD, ACS_DARROW, ACS_DEGREE,
    ACS_DIAMOND, ACS_GEQUAL, ACS_HLINE, ACS_LANTERN, ACS_LARROW, ACS_LEQUAL,
    ACS_LLCORNER, ACS_LRCORNER, ACS_LTEE, ACS_NEQUAL, ACS_PI, ACS_PLMINUS, ACS_PLUS,
    ACS_RARROW, ACS_RTEE, ACS_S1, ACS_S3, ACS_S7, ACS_S9, ACS_STERLING, ACS_TTEE,
    ACS_UARROW, ACS_ULCORNER, ACS_URCORNER, ACS_VLINE, AcsChar,
};
pub use attr::Attr;
pub use cell::Cell;
pub use color::{Color, ColorPair, ColorRgb, NamedColor};
pub use error::{Error, Result};
pub use image::{ImageFormat, ImagePlacement, ImageProtocol, KittyImage, SixelImage};
pub use input::Key;
pub use kitty::{FunctionalKey, KeyEvent, KeyEventType, KittyFlags, Modifiers, SetMode};
pub use layer::Layer;
pub use mosaic::{MosaicConfig, SymbolSet, render_mosaic};
pub use screen::Screen;
pub use surface::Surface;

// Re-export internal modules for benchmarking purposes
#[doc(hidden)]
pub mod __bench {
    pub use crate::cell::Cell;
    pub use crate::delta::{DirtyRegion, detect_scrolls, find_line_diff, hash_line};
}

// Re-export I/O functions for benchmarking
#[doc(hidden)]
pub mod __bench_io {
    pub use crate::platform_io::{write_all_stdout, write_stdout};
}