1use tuit::prelude::*;
4use tuit::std::stdout_render::StdoutRenderer;
5use tuit::style::Colour;
6use tuit::terminal::ConstantSize;
7use tuit::terminal::Rectangle;
8use tuit::widgets::builtins::{Ruler, Uv};
9use tuit::widgets::Direction;
10
11#[cfg(not(feature = "ansi_renderer"))]
12fn main() {
13 println!("You must apply the stdout_render feature to view this example. Use `cargo --features stdout_render`");
14}
15
16#[allow(clippy::needless_borrows_for_generic_args)]
20#[cfg(feature = "ansi_renderer")]
21fn main() -> anyhow::Result<()> {
22 let mut terminal: ConstantSize<100, 20> = ConstantSize::new();
23
24 let uv = Uv;
25
26 uv.drawn(&mut terminal)?;
27
28 let ruler = Ruler::new(10, Direction::Left).expect("Can't fail");
29 ruler.drawn(&mut terminal)?;
30
31 let ruler = Ruler::new(10, Direction::Down).expect("Can't fail");
32 ruler.drawn(&mut terminal)?;
33
34 let mut view_text = "V I E W T E X T ".chars().cycle();
35 let mut view = terminal
36 .view_mut(Rectangle::of_size((95, 15)).at((3, 1)))
37 .expect("Should always create a view successfully");
38
39 for cell in view.cells_mut() {
40 cell.style.bg_colour = Some(Colour::Rgb24(0, 127, 0));
41 cell.character = view_text.next().expect("Won't fail yo. like... ever... trust me bro.");
42 }
43
44 terminal.display(StdoutRenderer::default())?;
45
46 Ok(())
47}