diff --git a/plate-tool-eframe/src/app.rs b/plate-tool-eframe/src/app.rs index 0ed0d41..bf3e24e 100644 --- a/plate-tool-eframe/src/app.rs +++ b/plate-tool-eframe/src/app.rs @@ -16,8 +16,10 @@ use crate::transfer_menu::{transfer_menu, CurrentTransferState, TransferMenuStat use crate::tree::tree; use crate::upper_menu; +// Make sure all fields are either skipped by serde or impl default! #[non_exhaustive] #[derive(Debug, serde::Serialize, serde::Deserialize)] +#[serde(default)] pub struct MainWindowState { pub show_side_panel: bool, pub plate_display_options: PlateDisplayOptions, diff --git a/plate-tool-eframe/src/plate.rs b/plate-tool-eframe/src/plate.rs index 5073f3a..b08cc89 100644 --- a/plate-tool-eframe/src/plate.rs +++ b/plate-tool-eframe/src/plate.rs @@ -55,6 +55,7 @@ impl WellInfo { } #[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)] +#[serde(default)] pub struct PlateDisplayOptions { pub show_transfer_hashes: bool, pub show_well_volumes: bool,