From fed9d4d8e95e95a94cb8f3733eb3f2467f93bea3 Mon Sep 17 00:00:00 2001 From: javalsai Date: Sat, 30 May 2026 19:54:23 +0200 Subject: [PATCH] style: format --- Cargo.toml | 8 +++---- src/main.rs | 69 +++++++++++++++++++++++++++-------------------------- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4794c16..d736095 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,10 +4,10 @@ version = "0.1.0" edition = "2024" [dependencies] -axum = {version="0.8.9",features=["ws"]} +axum = { version = "0.8.9", features = ["ws"] } futures = "0.3.32" rand = "0.10.1" -serde = {version="1.0.228",features=["derive"]} +serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" -tokio = {version="1.52.3",features=["full"]} -tower-http = {version="0.6.11",features=["fs"]} +tokio = { version = "1.52.3", features = ["full"] } +tower-http = { version = "0.6.11", features = ["fs"] } diff --git a/src/main.rs b/src/main.rs index 6bca1ef..511dd80 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,7 +15,7 @@ use axum::{ response::{Html, IntoResponse}, routing::get, }; -use futures::{StreamExt as _}; +use futures::StreamExt as _; use rand::random_bool; use serde::{Deserialize, Serialize, de}; use serde_json::json; @@ -32,7 +32,7 @@ struct AppState { tx: mpsc::Sender, hiscores: Arc>>, loscores: Arc>>, - pingscores: Arc>>, // u64 is reset count and u32 is PB + pingscores: Arc>>, // u64 is reset count and u32 is PB } struct LeaderboardUpdate { @@ -45,7 +45,7 @@ enum LeaderboardUpdateType { Increment { loscore: u32 }, } -static CHANCE: f64 = 1.0/3.0; +static CHANCE: f64 = 1.0 / 3.0; const PATH_HISCORES: &str = "hiscores.json"; const PATH_LOSCORES: &str = "loscores.json"; @@ -74,20 +74,23 @@ async fn main() { { let pingscores = pingscores.clone(); - tokio::spawn( - async move { - loop // write pingscores every 30s - { - sleep(Duration::from_millis(30000)).await; - let pingscores = pingscores.lock().unwrap(); - let file_contents: String = serde_json::to_string(&pingscores.clone()).unwrap(); - drop(pingscores); - let mut file = fs::OpenOptions::new().write(true).truncate(true).open(PATH_PINGSCORES).unwrap(); - file.write_all(file_contents.as_bytes()).unwrap(); - file.flush().unwrap(); - } + tokio::spawn(async move { + loop + // write pingscores every 30s + { + sleep(Duration::from_millis(30000)).await; + let pingscores = pingscores.lock().unwrap(); + let file_contents: String = serde_json::to_string(&pingscores.clone()).unwrap(); + drop(pingscores); + let mut file = fs::OpenOptions::new() + .write(true) + .truncate(true) + .open(PATH_PINGSCORES) + .unwrap(); + file.write_all(file_contents.as_bytes()).unwrap(); + file.flush().unwrap(); } - ); + }); } let app = Router::new() @@ -101,9 +104,7 @@ async fn main() { pingscores: Arc::clone(&pingscores), }); - let listener = tokio::net::TcpListener::bind("0.0.0.0:8084") - .await - .unwrap(); + let listener = tokio::net::TcpListener::bind("0.0.0.0:8084").await.unwrap(); println!("http://0.0.0.0:8084"); @@ -158,7 +159,11 @@ fn handle_hiscores( hiscores_lock.reverse(); let file_contents: String = serde_json::to_string(&hiscores_lock.clone()).unwrap(); drop(hiscores_lock); - let mut file = fs::OpenOptions::new().write(true).truncate(true).open(PATH_HISCORES).unwrap(); + let mut file = fs::OpenOptions::new() + .write(true) + .truncate(true) + .open(PATH_HISCORES) + .unwrap(); file.write_all(file_contents.as_bytes()).unwrap(); drop(file); @@ -201,10 +206,7 @@ fn handle_hiscores( } } -async fn ws_handler( - ws: WebSocketUpgrade, - State(state): State, -) -> impl IntoResponse { +async fn ws_handler(ws: WebSocketUpgrade, State(state): State) -> impl IntoResponse { ws.on_upgrade(|socket| async move { handle_socket( socket, @@ -222,7 +224,7 @@ async fn handle_socket( tx: &mpsc::Sender, hiscores: &Mutex>, loscores: &Mutex>, - pingscores: &Mutex>, + pingscores: &Mutex>, ) { let mut value: u32 = 0; @@ -230,7 +232,8 @@ async fn handle_socket( let hiscores = hiscores.lock().unwrap(); let loscores = loscores.lock().unwrap(); let pingscores = pingscores.lock().unwrap(); - json!({ "hiscores": &*hiscores, "loscores": &*loscores, "pingscores": &*pingscores}).to_string() + json!({ "hiscores": &*hiscores, "loscores": &*loscores, "pingscores": &*pingscores}) + .to_string() }; let name: Arc = match socket.next().await.unwrap().unwrap() { @@ -248,14 +251,13 @@ async fn handle_socket( let mut resets: u32 = 0; let mut prev: u32 = 0; - let _ = socket - .send(Message::Text(msg.into())) - .await; + let _ = socket.send(Message::Text(msg.into())).await; while let Some(msg) = socket.next().await { match msg { Ok(Message::Text(_)) => { - if random_bool(CHANCE) { // reset + if random_bool(CHANCE) { + // reset let _ = tx.send(LeaderboardUpdate { name: name.clone(), update: LeaderboardUpdateType::Reset { @@ -264,15 +266,14 @@ async fn handle_socket( }); resets += 1; value = 0 - } // 1/3 chance of failing + } + // 1/3 chance of failing else { value += 1; if prev == 0 { let _ = tx.send(LeaderboardUpdate { name: name.clone(), - update: LeaderboardUpdateType::Increment { - loscore: resets, - }, + update: LeaderboardUpdateType::Increment { loscore: resets }, }); resets = 0; }