Saving file and dealing with all errors.

This commit is contained in:
Florent DENEF 2022-11-30 13:32:44 +01:00
parent 9ed44a9a68
commit 542923ccef
1 changed files with 14 additions and 9 deletions

View File

@ -1,4 +1,5 @@
use eframe::egui; use eframe::egui;
use std::io::Write as _;
use billy_sheet::gui::SheetGui; use billy_sheet::gui::SheetGui;
@ -40,16 +41,20 @@ impl eframe::App for Gui {
_frame.close(); _frame.close();
} }
if ui.button("Save in json").clicked() { if ui.button("Save in json").clicked() {
let sheet_str = serde_json::to_string(&self.sheet); let result = serde_json::to_string_pretty(&self.sheet);
let path = std::path::Path::new("./sheet.json"); match result {
if path.exists() { Ok(sheet_str) => {
if let Err(a) = std::fs::remove_file(path) { let path = std::path::Path::new("./sheet.json");
println!("{a}"); match std::fs::File::create(path) {
} else { Ok(mut file) => {
if let Err(err) = write!(file, "{}", sheet_str) {
println!("{err}");
}
}
Err(error) => println!("{error}"),
}
} }
} else { Err(error) => println!("{error}"),
} }
} }
}); });