1
0
mirror of https://github.com/pcvolkmer/osc-variant.git synced 2025-04-19 19:56:50 +00:00

Make version entries and categories optional in property catalogue

This commit is contained in:
Paul-Christian Volkmer 2023-11-08 11:55:48 +01:00
parent bf7b8cd9ba
commit a08abd7688

View File

@ -127,12 +127,12 @@ pub struct Version {
#[serde(rename = "Revision")] #[serde(rename = "Revision")]
revision: u16, revision: u16,
#[serde(rename = "Entries")] #[serde(rename = "Entries")]
entries: VersionEntries, entries: Option<VersionEntries>,
#[serde(rename = "Abbildung")] #[serde(rename = "Abbildung")]
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
abbildung: Option<Vec<Abbildung>>, abbildung: Option<Vec<Abbildung>>,
#[serde(rename = "Categories")] #[serde(rename = "Categories")]
categories: Categories, categories: Option<Categories>,
} }
impl Sortable for Version { impl Sortable for Version {
@ -151,19 +151,23 @@ impl Sortable for Version {
}); });
} }
self.entries if let Some(ref mut entries) = self.entries {
.content entries
.sort_unstable_by_key(|item| item.sorting_key()); .content
self.entries.content.iter_mut().for_each(|item| { .sort_unstable_by_key(|item| item.sorting_key());
item.sorted(); entries.content.iter_mut().for_each(|item| {
}); item.sorted();
});
}
self.categories if let Some(ref mut categories) = self.categories {
.content categories
.sort_unstable_by_key(|item| item.sorting_key()); .content
self.categories.content.iter_mut().for_each(|item| { .sort_unstable_by_key(|item| item.sorting_key());
item.sorted(); categories.content.iter_mut().for_each(|item| {
}); item.sorted();
});
}
self self
} }
@ -184,7 +188,7 @@ pub struct VersionEntry {
#[serde(rename = "ShortDescription")] #[serde(rename = "ShortDescription")]
short_description: String, short_description: String,
#[serde(rename = "Description")] #[serde(rename = "Description")]
description: String, description: Option<String>,
#[serde(rename = "Synonyms", default)] #[serde(rename = "Synonyms", default)]
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
synonyms: Option<String>, synonyms: Option<String>,