From 31f834f41dd355116dd039b05541f24d798b1fe3 Mon Sep 17 00:00:00 2001 From: pythcoiner Date: Wed, 12 Mar 2025 17:49:03 +0100 Subject: [PATCH] backup: default deserialization --- liana-gui/src/backup.rs | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/liana-gui/src/backup.rs b/liana-gui/src/backup.rs index 94e3d3fd..df4894f9 100644 --- a/liana-gui/src/backup.rs +++ b/liana-gui/src/backup.rs @@ -45,13 +45,14 @@ fn now() -> u64 { #[derive(Serialize, Deserialize)] pub struct Backup { - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, + #[serde(default)] pub accounts: Vec, pub network: Network, pub date: u64, /// App proprietary metadata (settings, configuration, etc..) - #[serde(skip_serializing_if = "serde_json::Map::is_empty")] + #[serde(default, skip_serializing_if = "serde_json::Map::is_empty")] pub proprietary: serde_json::Map, #[serde(default = "default_version")] pub version: u32, @@ -359,28 +360,28 @@ async fn get_transactions( #[derive(Debug, Serialize, Deserialize)] pub struct Account { - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, pub descriptor: String, - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub receive_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub change_index: Option, - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub timestamp: Option, - #[serde(skip_serializing_if = "BTreeMap::is_empty")] + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] pub keys: BTreeMap, - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub labels: Option, - #[serde(skip_serializing_if = "Vec::is_empty")] + #[serde(default, skip_serializing_if = "Vec::is_empty")] pub transactions: Vec, - #[serde(skip_serializing_if = "Vec::is_empty")] + #[serde(default, skip_serializing_if = "Vec::is_empty")] pub psbts: Vec, - #[serde(skip_serializing_if = "BTreeMap::is_empty")] + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] pub coins: BTreeMap, - #[serde(skip_serializing_if = "Option::is_none")] + #[serde(default, skip_serializing_if = "Option::is_none")] pub chain_tip: Option, - #[serde(skip_serializing_if = "serde_json::Map::is_empty")] + #[serde(default, skip_serializing_if = "serde_json::Map::is_empty")] pub proprietary: serde_json::Map, }