X-Git-Url: https://piware.de/gitweb/?p=learn-rust.git;a=blobdiff_plain;f=serde%2Fsrc%2Fmain.rs;h=fc88d23c418c5872db2d7df475506038a1644949;hp=335f836a7b9456ff16e9ade08b57e0f0bb8f27b2;hb=33b9630d43871bea43f39d3bbc455db1a5bdab7a;hpb=7e0b9a5fc3356ef1d7af78ace5171af606355b1b diff --git a/serde/src/main.rs b/serde/src/main.rs index 335f836..fc88d23 100644 --- a/serde/src/main.rs +++ b/serde/src/main.rs @@ -1,7 +1,10 @@ use std::fs; use std::error::Error; + use serde::{Serialize, Deserialize}; +const DB_PATH: &str = "/tmp/contacts.json"; + #[derive(Serialize, Deserialize, Debug)] enum Social { Twitter(String), @@ -29,13 +32,21 @@ fn build_contacts() -> Contacts { fn create_contacts() -> Result<(), Box> { let contacts = build_contacts(); let serialized = serde_json::to_string(&contacts)?; - println!("serialized: {}", serialized); - let mut f = fs::File::create("/tmp/contacts.json")?; + log::debug!("serialized: {}", &serialized); + let mut f = fs::File::create(DB_PATH)?; serde_json::to_writer_pretty(&mut f, &contacts)?; Ok(()) } +fn load_contacts() -> Result> { + let f = fs::File::open(DB_PATH)?; + Ok(serde_json::from_reader(f)?) +} + fn main() -> Result<(), Box> { + env_logger::init(); create_contacts()?; + let contacts = load_contacts()?; + println!("deserialized: {:?}", &contacts); Ok(()) }