Crate textmode[−][src]
Expand description
textmode
is a library for terminal interaction built on top of a real
terminal parsing library. It allows you to do arbitrary drawing operations
on an in-memory screen, and then update the visible terminal output to
reflect the in-memory screen via an optimized diff algorithm when you are
finished. Being built on a real terminal parsing library means that while
normal curses-like operations are available:
use textmode::Textmode;
let mut tm = textmode::Output::new().await?;
tm.clear();
tm.move_to(5, 5);
tm.set_fgcolor(textmode::color::RED);
tm.write_str("foo");
tm.refresh().await?;
you can also write data containing arbitrary terminal escape codes to the output and they will also do the right thing:
tm.write(b"\x1b[34m\x1b[3;9Hbar\x1b[m");
tm.refresh().await?;
This module is split into two main parts: Output
and
Input
. See the documentation for those types for more details.
Additionally, the blocking
module provides an equivalent interface
with blocking calls instead of async.
Modules
Enums
Traits
Provides the methods used to manipulate the in-memory screen.
Type Definitions
Convenience wrapper for a Result
using textmode::Error
.