expeditionos/helpers/
save.rs1use serde::Deserialize;
4use serde::Serialize;
5use toml::from_str;
6use std::fs;
7
8use super::files;
9
10#[derive(Serialize, Deserialize, Debug)]
13pub struct Save {
14 pub cpu: usize,
15 pub os: usize,
16 pub ram: usize
17}
18
19pub fn make_save(save: Save) {
22 let toml_string = toml::to_string(&save).expect("Failed to serialize save game.");
23 let data_dir = files::get_config_directory();
24
25 fs::write(data_dir.join("save.toml"), toml_string).expect("Failed to save the save file.");
26}
27
28pub fn load_save() -> Save {
29 let data_dir = files::get_config_directory();
30
31 let save_toml_file_str = data_dir.join("save.toml");
32
33 let save_toml_string = fs::read_to_string(save_toml_file_str)
34 .expect("Failed to read save file.");
35 let save: Save = from_str(&save_toml_string)
36 .expect("Expected a proper save. It is not formatted correctly. Refer to the data_structs/cpu.rs structure.");
37
38 save
39}