From 25583b59c9b62a5f4fd8efdfaa01c0a2060b2069 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Tue, 15 Jun 2021 12:48:36 -0300 Subject: [PATCH] Testing if Serde can work with dyn stuff --- serdedyn/Cargo.lock | 71 ++++++++++++++++++++++++++++++++++++++++++++ serdedyn/Cargo.toml | 10 +++++++ serdedyn/README.md | 3 ++ serdedyn/src/main.rs | 27 +++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 serdedyn/Cargo.lock create mode 100644 serdedyn/Cargo.toml create mode 100644 serdedyn/README.md create mode 100644 serdedyn/src/main.rs diff --git a/serdedyn/Cargo.lock b/serdedyn/Cargo.lock new file mode 100644 index 0000000..c275ce5 --- /dev/null +++ b/serdedyn/Cargo.lock @@ -0,0 +1,71 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "proc-macro2" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8caf72986c1a598726adc988bb5984792ef84f5ee5aa50209145ee8077038" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "serde" +version = "1.0.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7505abeacaec74ae4778d9d9328fe5a5d04253220a85c4ee022239fc996d03" + +[[package]] +name = "serde_derive" +version = "1.0.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "963a7dbc9895aeac7ac90e74f34a5d5261828f79df35cbed41e10189d3804d43" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serdedyn" +version = "0.1.0" +dependencies = [ + "serde", + "serde_derive", + "toml", +] + +[[package]] +name = "syn" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f71489ff30030d2ae598524f61326b902466f72a0fb1a8564c001cc63425bcc7" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +dependencies = [ + "serde", +] + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" diff --git a/serdedyn/Cargo.toml b/serdedyn/Cargo.toml new file mode 100644 index 0000000..5de33cc --- /dev/null +++ b/serdedyn/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "serdedyn" +version = "0.1.0" +authors = ["Julio Biason "] +edition = "2018" + +[dependencies] +toml = "0.5" +serde = "*" +serde_derive = "*" diff --git a/serdedyn/README.md b/serdedyn/README.md new file mode 100644 index 0000000..aaa424e --- /dev/null +++ b/serdedyn/README.md @@ -0,0 +1,3 @@ +# serdedyn + +Checking if Serde can work with `dyn` things. diff --git a/serdedyn/src/main.rs b/serdedyn/src/main.rs new file mode 100644 index 0000000..9238e86 --- /dev/null +++ b/serdedyn/src/main.rs @@ -0,0 +1,27 @@ +use serde_derive::Deserialize; +use serde_derive::Serialize; + +trait Marker {} + +#[derive(Serialize, Deserialize, Debug)] +struct AsString { + value: String, +} +impl Marker for AsString {} + +#[derive(Serialize, Deserialize, Debug)] +struct AsU8 { + value: u8, +} +impl Marker for AsU8 {} + +fn main() { + let mut contents: Vec> = Vec::new(); + contents.push(Box::new(AsString { + value: "Some value".into(), + })); + contents.push(Box::new(AsU8 { value: 2 })); + + let convered = toml::to_string(&contents).unwrap(); + println!("{}", convered); +}