textual 1.0.0-dev

A reactive TUI framework inspired by the Python Textual library
Documentation
use textual::event::EventCtx;
use textual::node_id_from_ffi;
use textual::prelude::OverlayScreenStack;

#[test]
fn overlay_screen_stack_models_push_pop_navigation_on_message_bus() {
    let sender = node_id_from_ffi(10);
    let first = node_id_from_ffi(100);
    let second = node_id_from_ffi(200);

    let mut stack = OverlayScreenStack::new();
    let mut ctx = EventCtx::default();

    assert!(stack.push(sender, first, &mut ctx));
    assert!(stack.push(sender, second, &mut ctx));
    assert_eq!(stack.len(), 2);
    assert_eq!(stack.current(), Some(second));
    assert_eq!(stack.pop(sender, &mut ctx), Some(second));
    assert_eq!(stack.current(), Some(first));
    stack.clear(sender, &mut ctx);
    assert!(stack.is_empty());
}