From 68474e65c27323da62aad223cea7fb22356b0df6 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Tue, 13 Jan 2026 11:25:35 +0800 Subject: feat: Added version control functionality and integrated Tokio and Reqwest to support asynchronous operations --- src/main.rs | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 31e87da..9161263 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,39 @@ +mod core; mod launcher; mod ui; +use tokio::sync::mpsc; +use tokio::runtime::Runtime; +use std::thread; + fn main() { - // 初始化UI模块 - ui::init(); + // channel for UI -> Backend + let (tx, mut rx) = mpsc::channel(32); + + // Spawn Tokio runtime in a background thread + thread::spawn(move || { + let rt = Runtime::new().unwrap(); + rt.block_on(async move { + println!("Backend started"); + while let Some(msg) = rx.recv().await { + match msg { + ui::UiEvent::StartGame => { + println!("Backend received StartGame"); + match core::manifest::fetch_version_manifest().await { + Ok(manifest) => { + println!("Fetched manifest. Latest release: {}", manifest.latest.release); + println!("Latest snapshot: {}", manifest.latest.snapshot); + } + Err(e) => { + eprintln!("Error fetching manifest: {}", e); + } + } + } + } + } + }); + }); - // 启动器模块的逻辑 - launcher::start(); -} \ No newline at end of file + // Run UI on main thread (must be main thread for GTK on some platforms) + ui::init(tx); +} -- cgit v1.2.3-70-g09d2