From 96d2125cf12f9b3b8f57a4428792b568a1c73ee7 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 26 Jul 2020 23:23:02 +0100 Subject: [PATCH] experiment with RON --- Cargo.lock.example | 12 ++++++++++++ Cargo.toml | 3 ++- src/cmdlistener.rs | 8 ++++---- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Cargo.lock.example b/Cargo.lock.example index 4a149c9b..52f05919 100644 --- a/Cargo.lock.example +++ b/Cargo.lock.example @@ -413,6 +413,7 @@ dependencies = [ "rmp-serde", "rocket", "rocket_contrib", + "ron", "serde", "serde-lexpr", "serde_json", @@ -1159,6 +1160,17 @@ dependencies = [ "unicode-xid 0.1.0", ] +[[package]] +name = "ron" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91260f321dbf3b5a16ff91c451dc9eb644ce72775a6812f9c3dfffe63818f8f" +dependencies = [ + "base64 0.12.3", + "bitflags", + "serde", +] + [[package]] name = "rustc-demangle" version = "0.1.16" diff --git a/Cargo.toml b/Cargo.toml index aefc6b88..7ab22c47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,7 +47,8 @@ failure = "0.1.8" # for pwd libc = "0.2" -serde-lexpr = "0.1" +serde-lexpr = "0.1" #xxx +ron = "0.6" #rocket = "0.4" rocket_contrib = { version = "0.4", default-features=false, features=["tera_templates","helmet","json"], git = "file:///home/ian/Rustup/Game/rocket/.git" branch = "Game-rocket-contrib" } diff --git a/src/cmdlistener.rs b/src/cmdlistener.rs index 452b24a5..85b188d6 100644 --- a/src/cmdlistener.rs +++ b/src/cmdlistener.rs @@ -52,8 +52,8 @@ impl CommandStream<'_> { } } -impl From for MgmtError { - fn from(je: serde_lexpr::Error) -> ME { +impl From for MgmtError { + fn from(je: ron::error::Error) -> ME { ParseFailed(format!("{}", &je)) } } @@ -71,12 +71,12 @@ fn decode_and_process(cs: &mut CommandStream, s: &str) { .unwrap_or_else(|e| MgmtResponse::Error { error: MgmtError::ParseFailed(format!("{}", e)) }); - serde_lexpr::to_writer(&mut cs.write, &resp)?; + ron::ser::to_writer(&mut cs.write, &resp)?; } #[throws(ME)] fn decode_process_inner(cs: &mut CommandStream, s: &str)-> MgmtResponse { - let cmd : MgmtCommand = serde_lexpr::from_str(s)?; + let cmd : MgmtCommand = ron::de::from_str(s)?; execute(cs, cmd)? } -- 2.30.2