cursive 0.2.0

A TUI (Text User Interface) library focused on ease-of-use.
Documentation
extern crate cursive;

use cursive::prelude::*;
use cursive::theme::BorderStyle;

fn main() {
    let mut siv = Cursive::new();

    siv.add_layer(Dialog::text("This is a dynamic theme example!")
                         .button("Change", |s| {
                            let mut theme = s.current_theme().clone();

                            theme.shadow = !theme.shadow;
                            theme.borders = match theme.borders {
                                Some(BorderStyle::Simple) => Some(BorderStyle::Outset),
                                Some(BorderStyle::Outset) => None,
                                None => Some(BorderStyle::Simple),
                            };

                            s.set_theme(theme);
                         })
                         .button("Quit", Cursive::quit));

    siv.run();
}