summaryrefslogtreecommitdiffstats
path: root/vendor/valuable/examples/derive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/valuable/examples/derive.rs')
-rw-r--r--vendor/valuable/examples/derive.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/vendor/valuable/examples/derive.rs b/vendor/valuable/examples/derive.rs
new file mode 100644
index 000000000..b67aaf3a7
--- /dev/null
+++ b/vendor/valuable/examples/derive.rs
@@ -0,0 +1,26 @@
+use valuable::Valuable;
+
+use std::collections::HashMap;
+
+// `Debug` not implemented for struct, the debug implementation is going via
+// valuable.
+#[derive(Valuable)]
+struct Person {
+ name: String,
+ age: u8,
+ phones: Vec<String>,
+ favorites: HashMap<String, String>,
+}
+
+fn main() {
+ let mut p = Person {
+ name: "John Doe".to_string(),
+ age: 42,
+ phones: vec!["876-5309".to_string()],
+ favorites: HashMap::new(),
+ };
+
+ p.favorites.insert("color".to_string(), "blue".to_string());
+
+ println!("{:#?}", p.as_value());
+}