chiark / gitweb /
experiment with RON
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Jul 2020 22:23:02 +0000 (23:23 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Jul 2020 22:23:02 +0000 (23:23 +0100)
Cargo.lock.example
Cargo.toml
src/cmdlistener.rs

index 4a149c9be98829d6a09cdabcb6ebc98229c604a7..52f059199a65f6fce07476752c401e3ba414a69d 100644 (file)
@@ -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"
index aefc6b88929b720b2c8117b7f531cb8ea06d5a2d..7ab22c4744569beb14b149666535b8eb37753872 100644 (file)
@@ -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" }
index 452b24a57fade7de3353f8b77799ade5aab1eb13..85b188d67caa5c6b63df1cc7fc60424c84cf9b5e 100644 (file)
@@ -52,8 +52,8 @@ impl CommandStream<'_> {
   }
 }
 
-impl From<serde_lexpr::Error> for MgmtError {
-  fn from(je: serde_lexpr::Error) -> ME {
+impl From<ron::error::Error> 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)?
 }