1pub mod frame;
2pub mod screen;
3
4pub mod prelude {
5 pub use crate::screen::Screen;
6 pub use crate::VecChar;
7 pub use crossterm::{
8 self,
9 event::{Event, KeyCode},
10 style::Color,
11 };
12}
13
14pub trait VecChar {
18 fn vec_char(self) -> VecOrChar;
19}
20
21impl VecChar for &str {
22 fn vec_char(self) -> VecOrChar {
23 VecOrChar::Vec(self.chars().collect())
24 }
25}
26
27impl VecChar for String {
28 fn vec_char(self) -> VecOrChar {
29 VecOrChar::Vec(self.chars().collect())
30 }
31}
32
33impl VecChar for &String {
34 fn vec_char(self) -> VecOrChar {
35 VecOrChar::Vec(self.chars().collect())
36 }
37}
38
39impl VecChar for char {
40 fn vec_char(self) -> VecOrChar {
41 VecOrChar::Char(self)
42 }
43}
44
45pub enum VecOrChar {
46 Vec(Vec<char>),
47 Char(char),
48}