too

Crates.iotoo
lib.rstoo
version0.2.0
sourcesrc
created_at2024-09-27 03:04:30.02947
updated_at2024-11-17 21:32:54.783025
descriptiontoo - a tui framework
homepage
repositoryhttps://github.com/museun/too
max_upload_size
id1388207
size497,174
(museun)

documentation

https://docs.rs/too

README

too

too -- a different kind of tui library

Simple examples

Centering some text:

fn main() -> std::io::Result<()> {
    too::run(|ui| {
        ui.center(|ui| ui.label("hello world"));
    })
}

A pair of buttons to increment and decrement a counter

fn main() -> std::io::Result<()> {
    let mut counter = 0;
    too::run(|ui| {
        ui.vertical(|ui|{
            ui.horizontal(|ui|{
                if ui.button("add 1").clicked() {
                    counter += 1;
                }
                if ui.button("subtract 1").clicked() {
                    counter -= 1;
                }
            });
            ui.label(counter)
        });
    })
}

Storing state in a struct

use too::view::Ui;

#[derive(Default)]
struct App {
    value: f32
}

impl App {
    fn view(&mut self, ui: &Ui) {
        ui.slider(&mut value);
    }
}

fn main() -> std::io::Result<()> {
    let mut app = App::default()
    too::run(|ui| app.view(ui))
}

Storing state seperately from an application

use too::view::Ui;

#[derive(Default)]
struct State {
    value: f32
}

struct App ;

impl App {
    fn view(&self, state: &mut State, ui: &Ui) {
        ui.slider(&mut state.value);
    }
}

fn main() -> std::io::Result<()> {
    let app = App;
    let mut state = State::default();
    too::run(|ui| app.view(&mut state, ui))
}

Some pre-made views are provided in: too::views

License: MIT OR Apache-2.0

Commit count: 84

cargo fmt