1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// #![warn(missing_docs, unreachable_pub, unused_crate_dependencies)]
// #![deny(unused_must_use, rust_2018_idioms)]
// #![doc(test(
//     no_crate_inject,
//     attr(deny(warnings, rust_2018_idioms), allow(dead_code, unused_variables))
// ))]

pub mod action;
pub mod app;
pub mod components;
pub mod tui;
pub mod utils;

use crate::{
    app::App,
    utils::{initialize_logging, initialize_panic_handler},
};
use color_eyre::eyre::Result;
use etop_core::EtopState;

pub async fn tokio_main(data: Option<EtopState>) -> Result<()> {
    initialize_logging()?;
    initialize_panic_handler()?;
    let tick_rate = 1.0;
    let frame_rate = 10.0;
    let mut app = App::new(tick_rate, frame_rate, data)?;
    app.run().await?;
    Ok(())
}