textmode
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;
let mut tm = new.await?;
tm.clear;
tm.move_to;
tm.set_fgcolor;
tm.write_str;
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;
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.