Compare commits

...

2 Commits

Author SHA1 Message Date
Florent DENEF 877d300a5c Handling the writing of the character sheet. 2022-11-30 16:52:49 +01:00
Florent DENEF 05473a0a33 Adding a function to easily write teh character sheet. 2022-11-30 16:52:26 +01:00
2 changed files with 10 additions and 15 deletions

View File

@ -1,5 +1,4 @@
use eframe::egui;
use std::io::Write as _;
use billy_sheet::gui::SheetGui;
@ -41,20 +40,9 @@ impl eframe::App for Gui {
_frame.close();
}
if ui.button("Save in json").clicked() {
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}"),
}
}
Err(error) => println!("{error}"),
let path = std::path::Path::new("./sheet.json");
if let Err(error) = billy_sheet::sheet::write_sheet(path, &self.sheet) {
println!("{error}");
}
}
});

View File

@ -1,6 +1,7 @@
use eframe::egui::widgets::DragValue;
use eframe::egui::Ui;
use serde::{Deserialize, Serialize};
use std::io::Write as _;
use crate::gui::SheetGui;
@ -36,6 +37,12 @@ pub struct CharacterSheet {
money: u32,
}
pub fn write_sheet(path: &std::path::Path, sheet: &CharacterSheet) -> std::io::Result<()> {
let sheet_str = serde_json::to_string_pretty(&sheet)?;
let mut file = std::fs::File::create(path)?;
write!(file, "{}", sheet_str)
}
impl CharacterSheet {
pub fn character_class(&self) -> &Classe {
&self.character_class