1use std::error::Error;
3use std::fs;
5use serde::{Deserialize, Serialize};
7
8#[derive(Deserialize, Serialize)]
10struct MyStruct {
11 name: String,
12 score: u32,
13}
14
15fn main() -> Result<(), Box<dyn Error>> {
16 let value = MyStruct {
18 name: "Ferris".to_owned(),
19 score: 42,
20 };
21
22 let bytes = shaft::to_bytes(&value)?;
24
25 fs::write("value.bin", bytes)?;
27
28 let bytes = fs::read("value.bin")?;
30
31 let value: MyStruct = shaft::from_bytes(&bytes)?;
33
34 assert_eq!(value.name, "Ferris");
36 assert_eq!(value.score, 42);
37
38 fs::remove_file("value.bin")?;
40
41 Ok(())
42}