#![windows_subsystem = "windows"]
use std::sync::Arc;
use eframe::egui;
mod core;
mod services;
mod ui;
mod utils;
pub const VERSION: &str = "1.0.0";
fn load_icon() -> Option<egui::IconData> {
let icon_bytes = include_bytes!("../assets/logo.png");
let image = image::load_from_memory(icon_bytes).ok()?.to_rgba8();
let (width, height) = image.dimensions();
Some(egui::IconData {
rgba: image.into_raw(),
width,
height,
})
}
fn main() -> eframe::Result<()> {
let icon = load_icon();
let mut viewport = egui::ViewportBuilder::default()
.with_inner_size([900.0, 600.0])
.with_min_inner_size([600.0, 400.0])
.with_title("Iris - Mensageira dos Devs");
if let Some(icon_data) = icon {
viewport = viewport.with_icon(Arc::new(icon_data));
}
let options = eframe::NativeOptions {
viewport,
..Default::default()
};
eframe::run_native(
"Iris",
options,
Box::new(|cc| Ok(Box::new(ui::AppHub::new(cc)))),
)
}