From 54fedeeefaa6b56ed5cbfb1941d1481d20e788bd Mon Sep 17 00:00:00 2001 From: xoviat Date: Sun, 5 Nov 2023 16:11:58 -0600 Subject: [PATCH] don't serialize default stop mode --- stm32-data-serde/src/lib.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/stm32-data-serde/src/lib.rs b/stm32-data-serde/src/lib.rs index ac0b222..c82633c 100644 --- a/stm32-data-serde/src/lib.rs +++ b/stm32-data-serde/src/lib.rs @@ -10,6 +10,10 @@ macro_rules! regex { }}; } +fn is_default(variant: &T) -> bool { + *variant == T::default() +} + #[derive(Clone, Debug, Eq, PartialEq, Hash, PartialOrd, Ord, Serialize, Deserialize)] pub struct Chip { pub name: String, @@ -116,6 +120,7 @@ pub mod chip { pub reset: Option, #[serde(skip_serializing_if = "Option::is_none")] pub mux: Option, + #[serde(default, skip_serializing_if = "crate::is_default")] pub stop_mode: rcc::StopMode, } @@ -140,9 +145,10 @@ pub mod chip { pub field: String, } - #[derive(Clone, Debug, Eq, PartialEq, Hash, PartialOrd, Ord, Serialize, Deserialize)] + #[derive(Clone, Debug, Eq, PartialEq, Hash, PartialOrd, Ord, Serialize, Deserialize, Default)] pub enum StopMode { - Stop1, // Peripheral prevents chip from entering Stop1 + #[default] + Stop1, // Peripheral prevents chip from entering Stop1 Stop2, // Peripheral prevents chip from entering Stop2 Standby, // Peripheral does not prevent chip from entering Stop }