diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -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 |