chiark / gitweb /
T
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 29 Apr 2022 10:12:20 +0000 (11:12 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 29 Apr 2022 10:12:20 +0000 (11:12 +0100)
Cargo.lock
Cargo.toml
src/main.rs

index 0e5399e665c4621039bfb037ecf89b5765ce4cd6..348727968cf99f4ac4084fdb3738ecc6c941c55d 100644 (file)
@@ -2,6 +2,49 @@
 # It is not intended for manual editing.
 version = 3
 
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
 [[package]]
 name = "foo"
 version = "0.1.0"
+dependencies = [
+ "serde-value",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "ordered-float"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.136"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+
+[[package]]
+name = "serde-value"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
+dependencies = [
+ "ordered-float",
+ "serde",
+]
index 80a79a0a9608ce3fb65b93c374a58ebecafcd0ac..2017ea90eef5658f404b599236217f2ffa00b95f 100644 (file)
@@ -7,3 +7,4 @@ edition = "2021"
 
 [dependencies]
 #tokio = { version = "1", features = ["full"] }
+serde-value = "0.7"
index b68991f90f24383ce7f8ee9acdfcb06114bbdbe1..5712dcb27bdb921a6b78700a17fea2c9e4903051 100644 (file)
@@ -1,15 +1,29 @@
-fn main() {
+#[allow(dead_code)]
+#[allow(unused_mut)]
+
+#[derive(Deserialize, Debug, Copy, Clone)]
+struct Place {
+    name: usize, // is actually s string
 }
 
-#[test]
-mod test {
-    fn wombat() {
-        dbg!("wombat");
-    }
+#[derive(Deserialize, Debug, Copy, Clone)]
+struct Output {
+    place: Place,
+    ino: char,
+}
 
-    #[test]
-    fn t() {
-        wombat();
-    }
+#[derive(Deserialize, Debug, Copy, Clone)]
+struct Flattened {
+    #[serde(flatten)]
+    place: Place
+    inf: char,
 }
 
+fn main() {
+    let place = Place { name: 42 };
+    let o = Output { place, ino: 'o' };
+    let f = Flattened { place, inf: 'f' };
+
+    eprintln!("O = {:?}", serde_value::to_value(&o));
+    eprintln!("F = {:?}", serde_value::to_value(&f));
+}