From 9ed44a9a68bf2efac55fb78d2b4bd8eea8ef07c5 Mon Sep 17 00:00:00 2001 From: Florent DENEF Date: Wed, 30 Nov 2022 13:32:18 +0100 Subject: [PATCH 1/2] Removing a blank line. --- src/sheet.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sheet.rs b/src/sheet.rs index 496bad4..c2c6cb3 100644 --- a/src/sheet.rs +++ b/src/sheet.rs @@ -2,7 +2,6 @@ use eframe::egui::widgets::DragValue; use eframe::egui::Ui; use serde::{Deserialize, Serialize}; - use crate::gui::SheetGui; #[derive(Debug, Serialize, Deserialize)] From 542923ccef5678d88969816ec661206786ee9549 Mon Sep 17 00:00:00 2001 From: Florent DENEF Date: Wed, 30 Nov 2022 13:32:44 +0100 Subject: [PATCH 2/2] Saving file and dealing with all errors. --- src/main.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main.rs b/src/main.rs index ef015e1..e3ed136 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ use eframe::egui; +use std::io::Write as _; use billy_sheet::gui::SheetGui; @@ -40,16 +41,20 @@ impl eframe::App for Gui { _frame.close(); } if ui.button("Save in json").clicked() { - let sheet_str = serde_json::to_string(&self.sheet); - let path = std::path::Path::new("./sheet.json"); - if path.exists() { - if let Err(a) = std::fs::remove_file(path) { - println!("{a}"); - } else { - + let result = serde_json::to_string_pretty(&self.sheet); + match result { + Ok(sheet_str) => { + let path = std::path::Path::new("./sheet.json"); + match std::fs::File::create(path) { + Ok(mut file) => { + if let Err(err) = write!(file, "{}", sheet_str) { + println!("{err}"); + } + } + Err(error) => println!("{error}"), + } } - } else { - + Err(error) => println!("{error}"), } } });