From a08abd7688291987f56623130d9917bfa8e1dbee Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 8 Nov 2023 11:55:48 +0100 Subject: [PATCH] Make version entries and categories optional in property catalogue --- src/model/property_catalogue.rs | 34 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/model/property_catalogue.rs b/src/model/property_catalogue.rs index 3ae7d5d..a8a3c05 100644 --- a/src/model/property_catalogue.rs +++ b/src/model/property_catalogue.rs @@ -127,12 +127,12 @@ pub struct Version { #[serde(rename = "Revision")] revision: u16, #[serde(rename = "Entries")] - entries: VersionEntries, + entries: Option, #[serde(rename = "Abbildung")] #[serde(skip_serializing_if = "Option::is_none")] abbildung: Option>, #[serde(rename = "Categories")] - categories: Categories, + categories: Option, } impl Sortable for Version { @@ -151,19 +151,23 @@ impl Sortable for Version { }); } - self.entries - .content - .sort_unstable_by_key(|item| item.sorting_key()); - self.entries.content.iter_mut().for_each(|item| { - item.sorted(); - }); + if let Some(ref mut entries) = self.entries { + entries + .content + .sort_unstable_by_key(|item| item.sorting_key()); + entries.content.iter_mut().for_each(|item| { + item.sorted(); + }); + } - self.categories - .content - .sort_unstable_by_key(|item| item.sorting_key()); - self.categories.content.iter_mut().for_each(|item| { - item.sorted(); - }); + if let Some(ref mut categories) = self.categories { + categories + .content + .sort_unstable_by_key(|item| item.sorting_key()); + categories.content.iter_mut().for_each(|item| { + item.sorted(); + }); + } self } @@ -184,7 +188,7 @@ pub struct VersionEntry { #[serde(rename = "ShortDescription")] short_description: String, #[serde(rename = "Description")] - description: String, + description: Option, #[serde(rename = "Synonyms", default)] #[serde(skip_serializing_if = "Option::is_none")] synonyms: Option,