1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! Basic terminal rendering including Terminal setup, "slicing" using Windows, and formatted
//! writing to Windows using Cursors.
//!
//! # Example:
//! ```no_run //tests do not provide a fully functional terminal
//! use unsegen::base::*;
//! use std::io::stdout;
//! use std::fmt::Write;
//!
//! let stdout = stdout();
//! let mut term = Terminal::new(stdout.lock());
//!
//! {
//!     let win = term.create_root_window();
//!     let (left, mut right) = win.split(ColIndex::new(5)).unwrap();
//!
//!     let (mut top, mut bottom) = left.split(RowIndex::new(2)).unwrap();
//!
//!     top.fill(GraphemeCluster::try_from('X').unwrap());
//!
//!     bottom.modify_default_style(StyleModifier::new().fg_color(Color::Green));
//!     bottom.fill(GraphemeCluster::try_from('O').unwrap());
//!
//!     let mut cursor = Cursor::new(&mut right)
//!         .position(ColIndex::new(1), RowIndex::new(2))
//!         .wrapping_mode(WrappingMode::Wrap)
//!         .style_modifier(StyleModifier::new().bold(true).bg_color(Color::Red));
//!
//!     writeln!(cursor, "Hi there!").unwrap();
//! }
//! term.present();
//! ```

pub mod basic_types;
pub mod cursor;
pub mod grapheme_cluster;
pub mod style;
pub mod terminal;
pub mod window;

pub use self::basic_types::*;
pub use self::cursor::*;
pub use self::grapheme_cluster::*;
pub use self::style::*;
pub use self::terminal::*;
pub use self::window::*;