summaryrefslogtreecommitdiffstats
path: root/src/client/games/response.rs
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-10-29 20:43:09 +0100
committersalmonik <salmonik@tuta.io>2026-10-29 20:43:09 +0100
commit6e2787d792de64c003eff03b62a2df798ef851c0 (patch)
tree0e9bf97b2f71df5fb9eb00d5195d32b8326886ff /src/client/games/response.rs
parentv2.2.1: forfeit blackjack bets when leaving or disconnecting (diff)
downloadzagan-bet-6e2787d792de64c003eff03b62a2df798ef851c0.tar.gz
zagan-bet-6e2787d792de64c003eff03b62a2df798ef851c0.zip
v2.3.0: add crash with local multiplier and pushed crash event
Diffstat (limited to '')
-rw-r--r--src/client/games/response.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/client/games/response.rs b/src/client/games/response.rs
index d9883f7..71e1fed 100644
--- a/src/client/games/response.rs
+++ b/src/client/games/response.rs
@@ -163,3 +163,24 @@ pub fn parse_blackjack_response(
163 .ok_or_else(|| format!("Unexpected server response: {response}"))?; 163 .ok_or_else(|| format!("Unexpected server response: {response}"))?;
164 serde_json::from_str(raw).map_err(|error| format!("Invalid blackjack state: {error}")) 164 serde_json::from_str(raw).map_err(|error| format!("Invalid blackjack state: {error}"))
165} 165}
166
167pub fn parse_crash_response(response: &str) -> Result<crate::crash::CrashState, String> {
168 let response = response.trim();
169 if response.is_empty() {
170 return Err("No response from server".to_string());
171 }
172 if let Some(message) = response.strip_prefix("ERROR") {
173 let message = message.trim();
174 return Err(if message.is_empty() {
175 "Server error".to_string()
176 } else {
177 message.to_string()
178 });
179 }
180
181 let raw = ["CRASH_START ", "CRASH_STATE ", "CRASH_BUSTED "]
182 .iter()
183 .find_map(|prefix| response.strip_prefix(prefix))
184 .ok_or_else(|| format!("Unexpected server response: {response}"))?;
185 serde_json::from_str(raw).map_err(|error| format!("Invalid crash state: {error}"))
186}