From 4f6f86c0f8f8272e9ec4bcdb869368f07881c98f Mon Sep 17 00:00:00 2001 From: deadvey Date: Fri, 29 May 2026 20:28:44 +0100 Subject: [PATCH] enums for leaderboard type --- pingscores.json | 2 +- src/.main.rs.swp | Bin 24576 -> 28672 bytes src/main.rs | 27 ++++++++++++++++----------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/pingscores.json b/pingscores.json index 7456af5..dd5b17b 100644 --- a/pingscores.json +++ b/pingscores.json @@ -1 +1 @@ -{"deadvey":58,"anon":15,"error":0} \ No newline at end of file +{"anon":15,"deadvey":58,"error":0} \ No newline at end of file diff --git a/src/.main.rs.swp b/src/.main.rs.swp index 28a7b97714072a0ac71ed42766dc94fdc1c934b8..a6ecfdee1120ca8a5558b44162df773927d34fb0 100644 GIT binary patch delta 1765 zcmZoTz}WDBQ7FkE%+puFQqPEifq_AQf#J!EjY1#z`B@q285kItK!OYm3|^B31?(Al zCkG0M3$j7QilB7I=175d{z(cfymwg{7-ZQY#&}H@RLHO2%FDp8nU{fK1up}`TwVr- z3A_vpeY^||y}S$zHM|TAS-cDkPP_~Z^1KWTe|Q)e&haoXoZ(?$IL*Vru$G5`VGR!h z!(1K)hHf4P1_vGnhRfUx3?1AI4AR^T4ClBQ7{a(17&N&U82)fFFr4OOU^vCez%YrE zfng#i149!hgFQnrCj)~fCj)~jCj)~bCj-L=4hDvY91IMXI2ah#a4;||=U`x{;9y{I ziElSEyEK1qTsx_S% zSzz)!U2T(q%)IpC8P%~5NkUp14Hy=PKSEW zP96q^b{+^zZ5G)k!-WFg1KdLiPAYnK_n?nI~|3L z%*h)glsD(9{A8LOr^!9}y}u~$VO|CXem+R7@=g{EFs}#k{_!#}JmzI!0L5@8G$uoM z85pdgu?dR7Z9EJN0Xz&05%2j3=Ear3=Ce}3=AgR z3=I0*3=GWN3=DU<7#MDHF)&=?Vqmz!#lUbG>aFEm3=HjD4D}3oTnr5UTnr3GTnr2> zAcdR^3`;l}7^ZSEFa&ZkF!*vZFnDq@Ft~FvFt~9tFz9nKFz9kJFo<$8FudhpU^vFX zz%ZYKfgy*3fgyu~fx(}Hfx(%Bfx&@;fkBXif#DH51H*cD1_mE?1_lpy1_oYs28O3> z3=EIh7#LQt)iW^kvN14pvN13uu`w`surV;WvoSE3voSD;urV-ju`w`kvN15+VP#-A z$I8I4k(GgA3M&JH6DtG57ZwJFhb#;Xw^$e$jo3=E%`7#Q9#F)-X_Vqn<7#K16_iGg7P69Yp(69YpU z69a=069a=G69a<;(`MD64{XS(d9!%rTNZOpPEP-94UN3i^7z!elA=l-3<0F%V`T+P z@RL78Z2pHiHCvVJSf}nFw}#Klrvz?im*Y!+tIXh8bK8 z45?fU42fI}3?5tz3^rU043=CB3|w3c47WKM7*=pHFt~CuFgSA7Gcd4mGBDiZU|_h- z!N9PPgMp!qgMp!mgMlF$TJ(Sto&g5~11|>y12YE$0}}@W!&P<$hU4rE46E1~7<$l z3=HM03=EN}tPBi(tPBjEtPBhutPBjctPBj6tPBihtPBh$tPBjstPBiBtPBintPBjV zSr{0uurM&3V_{%e&BDO2l!bv|3JU{6CJO_D4+{f>Ckq3E2MYs(JPQNEYi0(9SIm%T zeagIX;(Nx;>Ol*bP>UOQqBs#!sfdzX5QU|trnQ2;enDnl`ed(APgMQz;%Z80BT9k0 WSv>M9<7A8I?cz90-TWcimyi z@-i^+^D;2-@-i^+@G>yG<6&TU%frBMkB5Qb3=acCBM$?E2oD3pNp1#)7;Xjzer^Va z>0As9SzHVZwp28M191_m<@1_lKV28NyN3=B=|5GPl%Gcc60Gcc5} zGcbH&V_>++#=x+jZL^)?eb&kM{MjaZYjI9q5t&ipiV~^`4V>7#Jq-Ffi2fFfjP?Ffds2Ffgd` zFfd%>W?(qV&A^b%&A_0~&A=ee&A=eY&A`CN&A{-7i-F+>7X!lsE(V6%Tnr4$xEL5J zHeYn;;+(iZc5<{=<>q3gRV+yEisI#GU|>)OMUMajL&Idj0P}ifJ_ZIkJ_d%DybKJx zc^Me`c^McAco`U?co`TRc^Mc~c^Mck@-Q&$;bCA1<6&Ts<6&T6;$dL;!_C0(jhlht z9ybHSO>PE;9o!5I_1p{$0o)7>R@@8>rrZn+oZJiykGU8a?t`L%i-F-57X!mhE(V4p zTnr3rxfmFFxftphO1KypLb(_iEVvjLxIhXy85mY^GBC{MWMByAWMBy9WMJ^;WMJ^+ zWMJ^&WMDAmWMDAnWMGiyWMKHi!N72pgMnck2LnSj2LnSn2LnSK2LnS82LppYH2OZW zGcfF9XJCkCXJ80tXJC+FXJGik#=!8Aje%i1TRj8A95x1q8Egy;g=`EA;cN^HVQdTx zZfpz;%4`e_l57kN5^M|%uUQ!w?y@p49AIT&Sj@`65Xj2Fz|6|P@PUPa;Ux?Fsx^0U|7P;z%ZYgfngpq z1H3xLGchnMVq##J&&0qmkBNbyl!<}Ck%@u9fe8}1YD}AtB(G)Kyd%Vqg{jnHvtZ;~ cmdPJ7WhNi+5@9r)d^UH}WL;(H$xQM80HCX^3IG5A diff --git a/src/main.rs b/src/main.rs index 49ab5a4..b10fdcb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,10 +24,16 @@ struct Entry score: u32, person: String, } +enum Leaderboard +{ + Hiscores, + Loscores, + Pingscores, +} #[derive(Clone)] struct AppState { - tx: mpsc::Sender<(Entry,u8)>, + tx: mpsc::Sender<(Entry,Leaderboard)>, hiscores: Arc>>, loscores: Arc>>, pingscores: Arc>>, @@ -47,7 +53,7 @@ async fn main() { let loscore_clone1 = Arc::clone(&loscores); let pingscore_clone1 = Arc::clone(&pingscores); - let (tx, rx) = mpsc::channel::<(Entry,u8)>(); + let (tx, rx) = mpsc::channel::<(Entry,Leaderboard)>(); tokio::spawn( async move { @@ -94,7 +100,7 @@ async fn leaderboard() -> Html<&'static str> { Html(include_str!("../leaderboard.html")) } // receiver: 0 for hiscore, 1 for loscore, 2 for pingscore -fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc>>, loscores_arc: Arc>>,pingscores_arc: Arc>>,) +fn handle_hiscores(rx: mpsc::Receiver<(Entry, Leaderboard)>, hiscores_arc: Arc>>, loscores_arc: Arc>>,pingscores_arc: Arc>>,) { // Panic galore let mut hiscores = hiscores_arc.lock().unwrap(); @@ -109,7 +115,7 @@ fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc + Ok((new_entry,Leaderboard::Hiscores)) => { let mut hiscores = hiscores_arc.lock().unwrap(); if new_entry.score > hiscores[19].score { @@ -125,7 +131,7 @@ fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc + Ok((new_entry,Leaderboard::Loscores)) => { let mut loscores = loscores_arc.lock().unwrap(); if new_entry.score > loscores[19].score { @@ -141,14 +147,13 @@ fn handle_hiscores(rx: mpsc::Receiver<(Entry, u8)>, hiscores_arc: Arc + Ok((new_entry,Leaderboard::Pingscores)) => { let name = new_entry.person; let mut pingscores = pingscores_arc.lock().unwrap(); *pingscores.entry(name).or_insert(0) += 1; drop(pingscores); } - Ok((_,_)) => println!("Invalid number"), Err(error) => println!("{error}"), } } @@ -172,7 +177,7 @@ async fn ws_handler( async fn handle_socket ( mut socket: WebSocket, - tx: mpsc::Sender<(Entry,u8)>, + tx: mpsc::Sender<(Entry,Leaderboard)>, hiscores_arc: Arc>>, loscores_arc: Arc>>, pingscores_arc: Arc>>, @@ -202,12 +207,12 @@ async fn handle_socket match msg { Ok(Message::Text(_)) => { if random_bool(CHANCE) { - let _ = tx.send((Entry{ person: name.clone(), score: value },0)); //hiscores - let _ = tx.send((Entry{ person: name.clone(), score: 0 },2)); //hiscores + let _ = tx.send((Entry{ person: name.clone(), score: value },Leaderboard::Hiscores)); //hiscores + let _ = tx.send((Entry{ person: name.clone(), score: 0 },Leaderboard::Pingscores)); //pingscores if value == 0 { resets += 1; - let _ = tx.send((Entry{ person: name.clone(), score: resets },1));//loscores + let _ = tx.send((Entry{ person: name.clone(), score: resets },Leaderboard::Loscores));//loscores } else { resets = 0 }; value = 0