diff options
Diffstat (limited to 'vendor/vt100/src/lib.rs')
| -rw-r--r-- | vendor/vt100/src/lib.rs | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/vendor/vt100/src/lib.rs b/vendor/vt100/src/lib.rs new file mode 100644 index 00000000..19746a94 --- /dev/null +++ b/vendor/vt100/src/lib.rs @@ -0,0 +1,64 @@ +//! This crate parses a terminal byte stream and provides an in-memory +//! representation of the rendered contents. +//! +//! # Overview +//! +//! This is essentially the terminal parser component of a graphical terminal +//! 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"[..], +//! ); +//! ``` + +#![warn(missing_docs)] +#![warn(clippy::cargo)] +#![warn(clippy::pedantic)] +#![warn(clippy::nursery)] +#![warn(clippy::as_conversions)] +#![warn(clippy::get_unwrap)] +#![allow(clippy::cognitive_complexity)] +#![allow(clippy::missing_const_for_fn)] +#![allow(clippy::similar_names)] +#![allow(clippy::struct_excessive_bools)] +#![allow(clippy::too_many_arguments)] +#![allow(clippy::too_many_lines)] +#![allow(clippy::type_complexity)] + +mod attrs; +mod callbacks; +mod cell; +mod grid; +mod parser; +mod perform; +mod row; +mod screen; +mod term; + +pub use attrs::Color; +pub use callbacks::Callbacks; +pub use cell::Cell; +pub use parser::Parser; +pub use screen::{MouseProtocolEncoding, MouseProtocolMode, Screen}; |
