From: MegaBrutal Date: Sat, 18 Feb 2023 00:55:00 +0000 (+0100) Subject: Output results in JSON format X-Git-Tag: v0.2.0~9 X-Git-Url: http://git.megabrutal.com/?p=hlquery.git;a=commitdiff_plain;h=cdce7465f5e68bacf7764dd4c9286d60348a7af5 Output results in JSON format --- diff --git a/Cargo.lock b/Cargo.lock index 84a3293..784d70e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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" diff --git a/Cargo.toml b/Cargo.toml index f3349da..a4782a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/src/main.rs b/src/main.rs index 4bd31f3..4a3d54e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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()); + } } }