gravityfile_tui/
lib.rs

1//! Terminal user interface for gravityfile.
2//!
3//! This crate provides an interactive TUI for exploring disk usage,
4//! built with ratatui.
5
6mod app;
7mod event;
8mod theme;
9mod ui;
10
11pub use app::{App, AppResult};
12pub use theme::Theme;
13
14/// Run the TUI application.
15pub fn run(path: std::path::PathBuf) -> AppResult<()> {
16    // Create tokio runtime for async operations
17    let rt = tokio::runtime::Runtime::new()?;
18
19    let terminal = ratatui::init();
20    let result = rt.block_on(App::new(path).run(terminal));
21    ratatui::restore();
22
23    // Shutdown runtime immediately to cancel background tasks
24    rt.shutdown_timeout(std::time::Duration::from_millis(100));
25
26    result
27}