# retroglyph-core > A 2D pseudographic terminal library -- core types, no backend **Version:** 0.0.0 **Authors:** Matan Lurey **License:** MIT **Repository:** https://github.com/crates-lurey-io/retroglyph **Keywords:** roguelike, terminal, grid, gamedev Generated: 2026-08-05 20:21:09 UTC Created by: [cargo-llms-txt](https://github.com/masinc/cargo-llms-txt) ## Core Documentation - [Complete API Documentation](llms-full.txt): Full public API documentation with detailed descriptions - [README](README.md): Project overview and getting started guide - [Cargo.toml](Cargo.toml): Project configuration and dependencies ## Table of Contents ### src/app.rs - pub enum Flow - pub struct Frame - pub trait App - pub fn run_blocking - pub struct RunOptions - impl RunOptions - impl Default for RunOptions - pub fn run_blocking_with - impl App for tests::Counter - impl App for tests::AlwaysIdle - impl App for tests::DrawsAndExits - impl App for tests::IdleThenExit - impl App for tests::ObservesQueuedEventAfterIdle ### src/symbols/mod.rs - pub mod bar - pub mod block - pub mod border - pub mod braille - pub mod line - pub use subcell::{Glyph, HALF_BLOCKS, Pixel, QUADRANTS, SEXTANTS, quantize_half_block, quantize_quadrant, quantize_sextant} - pub struct BorderSet - pub struct LineSet ### src/symbols/block.rs - pub const FULL - pub const SEVEN_EIGHTHS - pub const THREE_QUARTERS - pub const FIVE_EIGHTHS - pub const HALF - pub const THREE_EIGHTHS - pub const ONE_QUARTER - pub const ONE_EIGHTH ### src/symbols/line.rs - pub const NORMAL - pub const DOUBLE - pub const THICK ### src/symbols/braille.rs - pub const BLANK - pub const DOT_1 - pub const DOT_2 - pub const DOT_3 - pub const DOT_4 - pub const DOT_5 - pub const DOT_6 - pub const DOT_7 - pub const DOT_8 - pub const DOTS - pub fn glyph ### src/symbols/bar.rs - pub const ONE_EIGHTH - pub const ONE_QUARTER - pub const THREE_EIGHTHS - pub const HALF - pub const FIVE_EIGHTHS - pub const THREE_QUARTERS - pub const SEVEN_EIGHTHS - pub const FULL - pub const NINE_LEVELS ### src/symbols/border.rs - pub const PLAIN - pub const ROUNDED - pub const DOUBLE - pub const THICK ### src/symbols/subcell.rs - pub type Pixel - pub const HALF_BLOCKS - pub const QUADRANTS - pub const SEXTANTS - pub struct Glyph - pub fn quantize_half_block - pub fn quantize_quadrant - pub fn quantize_sextant ### src/terminal/mod.rs - pub struct Terminal - impl Terminal - impl core::fmt::Debug for Terminal ### src/terminal/present.rs - impl Terminal - impl tests::FlushOnceFailing - impl Output for tests::FlushOnceFailing - impl Input for tests::FlushOnceFailing - impl Cursor for tests::FlushOnceFailing - impl Output for tests::NeedsFullFrameWithoutCompositing - impl Input for tests::NeedsFullFrameWithoutCompositing - impl Cursor for tests::NeedsFullFrameWithoutCompositing - impl tests::CompositingBackend - impl Output for tests::CompositingBackend - impl Input for tests::CompositingBackend - impl Cursor for tests::CompositingBackend - impl Output for tests::TogglingCompositor - impl Input for tests::TogglingCompositor - impl Cursor for tests::TogglingCompositor ### src/terminal/input.rs - impl Terminal - impl tests::ResizeCounting - impl Output for tests::ResizeCounting - impl Input for tests::ResizeCounting - impl Cursor for tests::ResizeCounting ### src/terminal/retain.rs - impl Terminal - impl tests::CompositingBackend - impl Output for tests::CompositingBackend - impl Input for tests::CompositingBackend - impl Cursor for tests::CompositingBackend ### src/lib.rs - pub mod app - pub mod backend - pub mod color - pub mod dev - pub mod event - pub mod frames - pub mod grid - pub mod layout - pub mod math - pub mod surface - pub mod symbols - pub mod terminal - pub mod testing - pub mod text - pub mod tile ### src/color/mod.rs - pub use ansi::{AnsiColor, InvalidAnsiIndex, Quantize} - pub use parse::ParseColorError - pub use style::Style - pub use tint::Tint - pub enum Color ### src/color/tint.rs - pub enum Tint - impl Tint ### src/color/style.rs - pub struct Style - impl Style ### src/color/ansi.rs - pub enum Quantize - pub enum AnsiColor - impl AnsiColor - pub struct InvalidAnsiIndex - impl core::fmt::Display for InvalidAnsiIndex - impl core::error::Error for InvalidAnsiIndex - impl TryFrom for AnsiColor ### src/color/named.rs - impl Color ### src/color/convert.rs - impl Color ### src/color/parse.rs - impl core::fmt::Display for Color - pub struct ParseColorError - impl core::fmt::Display for ParseColorError - impl core::error::Error for ParseColorError - impl core::str::FromStr for Color - impl serde::Serialize for Color - impl serde::Deserialize for Color ### src/testing/mod.rs - pub mod conformance - pub const STEP_DELTA - pub const DEFAULT_MAX_STEPS - pub struct TestHarness - impl TestHarness - pub enum RunError - impl fmt::Display for RunError - impl core::error::Error for RunError - impl App for tests::Clicker ### src/testing/conformance.rs - pub fn fnv1a - pub trait Observable - pub fn assert_output_contract - pub fn assert_cursor_contract - pub fn assert_cursor_style_contract - pub fn assert_input_contract - impl tests::HeadlessObserver - impl Output for tests::HeadlessObserver - impl Cursor for tests::HeadlessObserver - impl Observable for tests::HeadlessObserver ### src/layout/mod.rs - pub use align::{HAlign, VAlign} - pub use text_layout::TextLayout - pub use word_wrap::wrap ### src/layout/word_wrap.rs - pub fn wrap ### src/layout/align.rs - pub enum HAlign - impl HAlign - pub enum VAlign - impl VAlign ### src/layout/text_layout.rs - pub struct TextLayout - impl TextLayout ### src/math.rs - pub fn mul_add - pub fn round - pub fn sin - pub fn cos - pub fn powf - pub fn exp ### src/dev.rs - pub enum BuildMode - impl BuildMode - pub const DEV - dev_only! ### src/tile.rs - pub struct Tile - impl Default for Tile - impl Tile ### src/surface/mod.rs - pub use styled::StyledSurface - pub struct Surface - pub enum Layer - impl Layer - impl From for u8 - impl Surface ### src/surface/styled.rs - pub struct StyledSurface - impl StyledSurface ### src/surface/geometry.rs - impl Surface ### src/surface/draw/mod.rs - impl Surface ### src/surface/draw/spans.rs - impl Surface ### src/surface/draw/cells.rs - impl Surface ### src/surface/draw/text.rs - impl Surface ### src/event/mod.rs - pub use key::{KeyCode, KeyEvent, KeyEventKind, KeyLocation, KeyModifiers, KeyState, ModifierKey} - pub use mouse::{MouseButton, MouseEvent, MouseEventKind, PhysicalPos} - pub enum SystemTheme - pub enum Event - pub fn coalesces_with ### src/event/mouse.rs - pub type PhysicalPos - pub enum MouseButton - pub enum MouseEventKind - pub struct MouseEvent - impl MouseEvent ### src/event/key.rs - pub struct KeyModifiers - impl KeyModifiers - impl BitOr for KeyModifiers - impl BitOrAssign for KeyModifiers - impl BitAnd for KeyModifiers - impl BitAndAssign for KeyModifiers - impl Not for KeyModifiers - pub enum ModifierKey - pub enum KeyCode - pub enum KeyEventKind - pub enum KeyLocation - pub struct KeyEvent - impl KeyEvent - pub struct KeyState - impl KeyState - impl core::hash::Hasher for tests::TestHasher ### src/frames/mod.rs - pub use clock::FrameClock - pub use stats::FrameStats ### src/frames/clock.rs - pub struct FrameClock - impl FrameClock ### src/frames/stats.rs - pub struct FrameStats - impl Default for FrameStats - impl FrameStats ### src/grid/mod.rs - pub use ixy::HasSize - pub enum BlendMode - impl BlendMode - pub type Size - pub type Pos - pub type Rect - pub struct Offset - impl Offset - impl From for Offset - impl From for Unknown - impl TileExtra - impl LayerBuf - pub struct Grid - impl Grid ### src/grid/diff.rs - impl Grid - impl Iterator for LayerDiff ### src/grid/api.rs - impl Grid ### src/grid/spans.rs - impl Grid ### src/grid/trait_impls.rs - impl Index for Grid - impl IndexMut for Grid - impl fmt::Display for Grid - impl fmt::Debug for Grid ### src/grid/layers/mod.rs - impl Grid ### src/grid/layers/tint.rs - impl Grid ### src/grid/layers/flatten.rs - impl Grid ### src/grid/layers/blit.rs - impl Grid ### src/text.rs - pub fn width - pub fn width_usize - pub fn char_width - pub fn split_at_width - pub fn truncate_measured - pub struct Span - impl Span - impl From for Span - pub struct Line - impl Line - impl From for Line - impl From for Line - impl From for Line - impl From for Line - spans! ### src/backend/mod.rs - pub mod headless - pub use headless::Headless - pub trait BackendError - impl BackendError for core::convert::Infallible - impl BackendError for std::io::Error - pub struct DrawCell - impl DrawCell - pub trait Output - pub trait Input - pub trait Cursor - pub enum CursorStyle - pub trait Backend - impl Backend for T ### src/backend/headless.rs - pub struct Headless - impl Headless - impl Output for Headless - impl Input for Headless - impl Cursor for Headless --- ## README.md ### retroglyph-core A 2D pseudographic terminal library -- core types, no backend Part of the [retroglyph](https://github.com/crates-lurey-io/retroglyph) workspace. ## Cargo.toml ```toml [package] name = "retroglyph-core" version = "0.0.0" edition = "2024" description = "A 2D pseudographic terminal library -- core types, no backend" license = "MIT" repository = "https://github.com/crates-lurey-io/retroglyph" keywords = ["roguelike","terminal","grid","gamedev"] categories = ["game-development","graphics"] authors = ["Matan Lurey "] ```