mod app;
mod gpu;
mod ui;
use clap::Parser;
use std::time::Duration;
#[derive(Parser)]
#[command(version)]
struct Args {
#[arg(short = 'd', long, default_value_t = 1000, value_parser = clap::value_parser!(u64).range(100..=60000))]
interval: u64,
#[arg(long)]
once: bool,
}
fn main() -> anyhow::Result<()> {
let args = Args::parse();
let sampler = gpu::Sampler::new()?;
if args.once {
app::print_once(&sampler);
return Ok(());
}
let mut terminal = ratatui::init();
let result = app::App::new(sampler, Duration::from_millis(args.interval)).run(&mut terminal);
ratatui::restore();
result
}