#[macro_use]
extern crate serde;
extern crate singlefile;
use singlefile::container::StandardContainer;
use singlefile_formats::data::json_serde::Json;
fn main() {
let mut container = StandardContainer::<Data, Json>::create_or_default("data.json", Json, Default::default())
.expect("failed to create data file container");
println!("data: {:?}", container.get());
container.magic_number = 42;
container.magic_string = ":^)".to_owned();
container.is_magic = true;
container.commit().expect("failed to commit data");
println!("data: {:?}", container.get());
container.refresh().expect("failed to refresh data");
println!("data: {:?}", container.get());
container.close().expect("failed to close file container");
}
#[derive(Debug, Serialize, Deserialize)]
struct Data {
magic_number: u32,
magic_string: String,
is_magic: bool
}
impl Default for Data {
fn default() -> Self {
Data {
magic_number: 0,
magic_string: "none".to_owned(),
is_magic: false
}
}
}