Output results in JSON format
authorMegaBrutal <megabrutal+github@megabrutal.com>
Sat, 18 Feb 2023 00:55:00 +0000 (01:55 +0100)
committerMegaBrutal <megabrutal+github@megabrutal.com>
Sat, 18 Feb 2023 00:55:00 +0000 (01:55 +0100)
Cargo.lock
Cargo.toml
src/main.rs

index 84a3293c4c37948fb4e7990d3871b47b6f8fd5e0..784d70e60f27b5633db666058316997ecc5c5766 100644 (file)
@@ -11,6 +11,7 @@ dependencies = [
  "byteorder",
  "bzip2",
  "crc",
+ "serde",
  "thiserror",
 ]
 
@@ -67,8 +68,15 @@ name = "hlquery"
 version = "0.1.0"
 dependencies = [
  "a2s",
+ "serde_json",
 ]
 
+[[package]]
+name = "itoa"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
 [[package]]
 name = "libc"
 version = "0.2.139"
@@ -99,6 +107,43 @@ dependencies = [
  "proc-macro2",
 ]
 
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
+name = "serde"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.152"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
 [[package]]
 name = "syn"
 version = "1.0.107"
index f3349da27814d57a8a475ef8e7eeeb63c938b092..a4782a99236a476a1bbf75c563fae2bb0a9fa845 100644 (file)
@@ -6,4 +6,5 @@ edition = "2021"
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-a2s = "0.5.1"
+a2s = { version = "0.5.1", features = ["serialization"] }
+serde_json = "1.0.93"
index 4bd31f3a18c9b2f6f787620d1a98a23df9ef6255..4a3d54e87464a242b7196dab26ba9b53954b877b 100644 (file)
@@ -16,14 +16,17 @@ fn main() {
 
         println!("Querying address: {}", address);
 
-        let result = client.info(address);
-        println!("{:?}\n", result);
+        if let Ok(result) = client.info(address) {
+            println!("{}\n", serde_json::to_string_pretty(&result).unwrap());
+        }
 
-        let result = client.rules(address);
-        println!("{:?}\n", result);
+        if let Ok(result) = client.rules(address) {
+            println!("{}\n", serde_json::to_string_pretty(&result).unwrap());
+        }
 
-        let result = client.players(address);
-        println!("{:?}\n", result);
+        if let Ok(result) = client.players(address) {
+            println!("{}\n", serde_json::to_string_pretty(&result).unwrap());
+        }
 
     }
 }