use serde::{Serialize, Deserialize};
use std::fs::File;
use std::io::prelude::*;
#[derive(Serialize, Deserialize, Debug)]
struct Data {
text: String,
num: f32,
arr: Vec<i32>,
}
fn main() -> std::io::Result<()> {
let data: Data = Data {
text: "Hello".to_string(),
num: 3.14,
arr: vec![2, 5, 7],
};
//Write Binary Data
if let Ok(data_b) = bincode::serialize(&data) {
let file_path = "data.bin";
let mut file = File::create(file_path)?;
file.write_all(&data_b)?;
//Read Binary Data
let mut file = File::open(file_path)?;
let mut data_b2 = Vec::<u8>::new();
file.read_to_end(&mut data_b2)?;
let mut cursor = &data_b2[..];
let data2: Data = bincode::
deserialize_from(&mut cursor).unwrap();
println!("data2 is {:?}", data2);
}
Ok(())
}