kraken_async_rs/wss/messages/
admin_messages.rs1use crate::response_types::SystemStatus;
2use serde::Deserialize;
3use serde_json::Number;
4
5#[derive(Debug, Deserialize, PartialEq)]
6pub struct StatusUpdate {
7 pub api_version: String,
8 pub connection_id: Option<Number>,
10 pub system: SystemStatus,
11 pub version: String,
12}
13
14#[cfg(test)]
15mod tests {
16 use super::*;
17 use std::str::FromStr;
18
19 #[test]
22 fn test_deserialize_status_update() {
23 let message = r#"{"api_version":"v2","connection_id":18266300427528990701,"system":"online","version":"2.0.4"}"#;
24 let expected = StatusUpdate {
25 api_version: "v2".to_string(),
26 connection_id: Some(Number::from_str("18266300427528990701").unwrap()),
27 system: SystemStatus::Online,
28 version: "2.0.4".to_string(),
29 };
30
31 let parsed = serde_json::from_str::<StatusUpdate>(message);
32
33 assert_eq!(expected, parsed.unwrap());
34
35 }
41}