Files
lan_toolkit/src/main.rs
Starrysky e9a58952dc 提交
2026-09-25 16:38:43 +08:00

36 lines
1.1 KiB
Rust

use std::sync::mpsc::channel;
use crate::application::{LANToolkit, Messages, WINDOW_HEIGHT, WINDOW_WIDTH};
use iced::Theme::TokyoNight;
use iced::Size;
use crate::config::Config;
use crate::worker::WorkerState;
mod application;
mod worker;
mod config;
fn main() {
let (tx,rx) = channel::<Messages>();
let state = WorkerState {
tx: tx.clone()
};
let cfg = Config::default();
let res = std::thread::Builder::new()
.name("Worker Thread".to_string())
.spawn(worker::worker_main(state.clone(), rx));
if res.is_err() {
println!("Failed to start worker thread: {}", res.err().unwrap());
return;
}
// 我发现这个库真的很tm喜欢把函数当参数传来传去:(
let res = iced::application(LANToolkit::boot(state.clone(), cfg.clone()), LANToolkit::update, LANToolkit::view)
.title(|state: &LANToolkit| state.cfg.window_name.clone())
.window_size(Size::new(WINDOW_WIDTH as f32,WINDOW_HEIGHT as f32))
.theme(TokyoNight)
.run();
if res.is_err() {
println!("Failed to start main window: {}", res.err().unwrap());
return;
}
}