diff options
author | Hubert Figuière <hub@figuiere.net> | 2023-09-13 22:42:44 -0400 |
---|---|---|
committer | Hubert Figuière <hub@figuiere.net> | 2023-09-13 22:42:44 -0400 |
commit | 11ece5a3eb34c4e3e1820a01a7bb9f9753d720cf (patch) | |
tree | e88705eb291cc7e55142b3f44fb55b06a9a627c4 | |
parent | b0be067314645f310fe7fe66502bb8520fe24b7f (diff) |
gentest: skip serialization for none elements
-rw-r--r-- | libopenraw-testing/src/lib.rs | 69 |
1 files changed, 56 insertions, 13 deletions
diff --git a/libopenraw-testing/src/lib.rs b/libopenraw-testing/src/lib.rs index e355c71..1c74ac4 100644 --- a/libopenraw-testing/src/lib.rs +++ b/libopenraw-testing/src/lib.rs @@ -39,39 +39,81 @@ pub fn raw_checksum(buf: &[u8]) -> u16 { #[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] #[serde(rename_all = "camelCase")] pub struct Results { + #[serde(skip_serializing_if = "Option::is_none")] pub raw_type: Option<String>, - #[serde(default)] + #[serde(skip_serializing_if = "Option::is_none", default)] pub raw_type_id: Option<u32>, /// MakerNoteCount can be -1 for an error (expected) - #[serde(default)] + #[serde(skip_serializing_if = "Option::is_none", default)] pub maker_note_count: Option<i32>, + #[serde(skip_serializing_if = "Option::is_none")] pub maker_note_id: Option<String>, + #[serde(skip_serializing_if = "Option::is_none")] pub exif_make: Option<String>, + #[serde(skip_serializing_if = "Option::is_none")] pub exif_model: Option<String>, - #[serde(default)] + #[serde(skip_serializing_if = "Option::is_none", default)] pub thumb_num: Option<u32>, - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub thumb_sizes: Option<Vec<u32>>, + #[serde(skip_serializing_if = "Option::is_none")] pub thumb_formats: Option<String>, // XXX split array - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub thumb_data_sizes: Option<Vec<u32>>, - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub thumb_md5: Option<Vec<u16>>, + #[serde(skip_serializing_if = "Option::is_none")] pub raw_data_type: Option<String>, - #[serde(default)] + #[serde(skip_serializing_if = "Option::is_none", default)] pub raw_data_size: Option<u32>, - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub raw_data_dimensions: Option<Vec<u32>>, - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub raw_data_active_area: Option<Vec<u32>>, + #[serde(skip_serializing_if = "Option::is_none")] pub raw_cfa_pattern: Option<String>, - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub raw_min_value: Option<Vec<u16>>, - #[serde(deserialize_with = "from_list", serialize_with = "to_list", default)] + #[serde( + deserialize_with = "from_list", + serialize_with = "to_list", + skip_serializing_if = "Option::is_none", + default + )] pub raw_max_value: Option<Vec<u16>>, - #[serde(default)] + #[serde(skip_serializing_if = "Option::is_none", default)] pub raw_md5: Option<u16>, - #[serde(default)] + #[serde(skip_serializing_if = "Option::is_none", default)] pub meta_orientation: Option<u32>, } @@ -115,6 +157,7 @@ where pub struct Test { pub name: String, pub file: String, + #[serde(skip_serializing_if = "Option::is_none")] pub source: Option<String>, pub results: Results, } |