#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic)]
#![warn(clippy::pedantic)]
#![warn(clippy::nursery)]
#![warn(clippy::cargo)]
#![warn(clippy::needless_return)]
#![allow(clippy::mod_module_files)]
#![allow(clippy::unseparated_literal_suffix)]
#![allow(clippy::missing_inline_in_public_items)]
#![allow(clippy::panic)]
#![allow(clippy::multiple_crate_versions)]
#![allow(clippy::blanket_clippy_restriction_lints)]
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::missing_panics_doc)]
#![allow(clippy::cast_lossless)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::cast_sign_loss)]
#![allow(clippy::cast_possible_truncation)]
#![allow(clippy::cognitive_complexity)]
#![allow(clippy::cargo_common_metadata)]
#![allow(clippy::future_not_send)]
#![allow(clippy::used_underscore_binding)]
#![allow(clippy::crate_in_macro_def)]
#![allow(clippy::too_many_lines)]
use std::sync::Arc;
use edirstat::{coordinator::SharedState, gui::GuiApp, traversal::TraversalEngine};
fn main() -> eframe::Result {
let shared_state = Arc::new(SharedState::new());
let traversal_engine = Arc::new(TraversalEngine::new());
let native_options = eframe::NativeOptions {
viewport: eframe::egui::ViewportBuilder::default()
.with_title("eDirStat - Cross-Platform Disk Usage Analyzer")
.with_icon(
eframe::icon_data::from_png_bytes(&include_bytes!("../../icon.png")[..]).map_err(
|e| {
eprintln!("Failed to load icon: {e}");
eframe::Error::AppCreation(Box::new(e))
},
)?,
)
.with_inner_size([2560.0, 1440.0])
.with_min_inner_size([800.0, 600.0]),
..Default::default()
};
eframe::run_native(
"edirstat",
native_options,
Box::new(|_cc| Ok(Box::new(GuiApp::new(shared_state, traversal_engine)))),
)
}