aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 7f391c6..f408a19 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4,20 +4,33 @@
//! # Overview
//!
//! This is essentially the terminal parser component of a graphical terminal
-//! emulator pulled out into a separate crate. This can be used to not only
-//! build graphical terminal emulators, but also many other types of
-//! applications that need to interact with a terminal data stream directly,
-//! such as terminal multiplexers or terminal recording applications.
+//! emulator pulled out into a separate crate. Although you can use this crate
+//! to build a graphical terminal emulator, it also contains functionality
+//! necessary for implementing terminal applications that want to run other
+//! terminal applications - programs like `screen` or `tmux` for example.
//!
//! # Synopsis
//!
//! ```
//! let mut parser = vt100::Parser::new(24, 80, 0);
+//!
+//! let screen = parser.screen().clone();
//! parser.process(b"this text is \x1b[31mRED\x1b[m");
//! assert_eq!(
//! parser.screen().cell(0, 13).unwrap().fgcolor(),
//! vt100::Color::Idx(1),
//! );
+//!
+//! let screen = parser.screen().clone();
+//! parser.process(b"\x1b[3D\x1b[32mGREEN");
+//! assert_eq!(
+//! parser.screen().contents_formatted(),
+//! &b"\x1b[?25h\x1b[m\x1b[H\x1b[Jthis text is \x1b[32mGREEN"[..],
+//! );
+//! assert_eq!(
+//! parser.screen().contents_diff(&screen),
+//! &b"\x1b[1;14H\x1b[32mGREEN"[..],
+//! );
//! ```
// XXX this is broken with ale