mirror of
https://github.com/ratatui-org/ratatui
synced 2024-11-26 14:40:30 +00:00
51 lines
1.6 KiB
Rust
51 lines
1.6 KiB
Rust
//! # [Ratatui] Original Demo example
|
|
//!
|
|
//! The latest version of this example is available in the [examples] folder in the repository.
|
|
//!
|
|
//! Please note that the examples are designed to be run against the `main` branch of the Github
|
|
//! repository. This means that you may not be able to compile with the latest release version on
|
|
//! crates.io, or the one that you have installed locally.
|
|
//!
|
|
//! See the [examples readme] for more information on finding examples that match the version of the
|
|
//! library you are using.
|
|
//!
|
|
//! [Ratatui]: https://github.com/ratatui-org/ratatui
|
|
//! [examples]: https://github.com/ratatui-org/ratatui/blob/main/examples
|
|
//! [examples readme]: https://github.com/ratatui-org/ratatui/blob/main/examples/README.md
|
|
|
|
use std::{error::Error, time::Duration};
|
|
|
|
use argh::FromArgs;
|
|
|
|
mod app;
|
|
#[cfg(feature = "crossterm")]
|
|
mod crossterm;
|
|
#[cfg(feature = "termion")]
|
|
mod termion;
|
|
#[cfg(feature = "termwiz")]
|
|
mod termwiz;
|
|
|
|
mod ui;
|
|
|
|
/// Demo
|
|
#[derive(Debug, FromArgs)]
|
|
struct Cli {
|
|
/// time in ms between two ticks.
|
|
#[argh(option, default = "250")]
|
|
tick_rate: u64,
|
|
/// whether unicode symbols are used to improve the overall look of the app
|
|
#[argh(option, default = "true")]
|
|
enhanced_graphics: bool,
|
|
}
|
|
|
|
fn main() -> Result<(), Box<dyn Error>> {
|
|
let cli: Cli = argh::from_env();
|
|
let tick_rate = Duration::from_millis(cli.tick_rate);
|
|
#[cfg(feature = "crossterm")]
|
|
crate::crossterm::run(tick_rate, cli.enhanced_graphics)?;
|
|
#[cfg(feature = "termion")]
|
|
crate::termion::run(tick_rate, cli.enhanced_graphics)?;
|
|
#[cfg(feature = "termwiz")]
|
|
crate::termwiz::run(tick_rate, cli.enhanced_graphics)?;
|
|
Ok(())
|
|
}
|