tmaze 1.16.0

Simple multiplatform maze solving game for terminal written entirely in Rust
Documentation
use tmaze::{
    app::{
        app::{App, AppData},
        Activity, ActivityHandler,
    },
    ui::{menu, Popup},
};

fn main() {
    let mut app = App::new(
        Activity::new_base_boxed(
            "activity",
            MyActivity(
                false,
                Popup::new("Press any key to quit".to_string(), vec![]),
            ),
        ),
        true,
    );

    app.run();
}

struct MyActivity(bool, Popup);

impl ActivityHandler for MyActivity {
    fn update(
        &mut self,
        events: Vec<tmaze::app::Event>,
        data: &mut AppData,
    ) -> Option<tmaze::app::Change> {
        if !self.0 {
            self.0 = true;

            let menu_config = menu::MenuConfig::new_from_strings("Menu", vec![])
                .counted()
                .default(1);

            let menu = menu::Menu::new(menu_config).into_activity();
            return Some(tmaze::app::Change::Push(menu));
        }

        self.1.update(events, data)
    }

    fn screen(&self) -> &dyn tmaze::ui::Screen {
        &self.1
    }
}