aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md23
1 files changed, 18 insertions, 5 deletions
diff --git a/README.md b/README.md
index 2b7152f..a8e1b8f 100644
--- a/README.md
+++ b/README.md
@@ -6,18 +6,31 @@ representation of the rendered contents.
## 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
```rust
-let mut parser = vt100::Parser::new(24, 80);
+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"[..],
+);
```