From 88d6813b7fdfeb9611d1803d7499323eed276929 Mon Sep 17 00:00:00 2001 From: Andreas Grois Date: Thu, 22 Apr 2021 20:54:07 +0200 Subject: Rename "elements" in config to "element" to make config readable --- swaystatus/src/config/mod.rs | 14 +++++++++----- testconfig | 10 +++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/swaystatus/src/config/mod.rs b/swaystatus/src/config/mod.rs index ad1d471..8a00a9a 100644 --- a/swaystatus/src/config/mod.rs +++ b/swaystatus/src/config/mod.rs @@ -28,7 +28,7 @@ pub struct SwaystatusConfig<'p> { #[serde(rename = "Settings")] pub settings : Option, ///Settings for each part of the output sting. - #[serde(rename = "Elements")] + #[serde(rename = "Element")] pub elements : Option>>, } @@ -118,8 +118,12 @@ impl Default for SwaystatusMainConfig { #[derive(Deserialize)] #[serde(field_identifier)] -#[allow(non_camel_case_types)] -enum SwaystatusConfigField { Settings, Elements, settings, elements } +enum SwaystatusConfigField { + #[serde(alias = "settings")] + Settings, + #[serde(alias = "element", alias = "elements", alias = "Elements")] + Element +} struct SwaystatusConfigVisitor<'a>(&'a PluginDatabase<'a>) ; impl<'de, 'a> Visitor<'de> for SwaystatusConfigVisitor<'a> { type Value = SwaystatusConfig<'a>; @@ -132,13 +136,13 @@ impl<'de, 'a> Visitor<'de> for SwaystatusConfigVisitor<'a> { let mut elem = None; while let Some(key) = map.next_key()? { match key { - SwaystatusConfigField::Settings | SwaystatusConfigField::settings => { + SwaystatusConfigField::Settings => { if sett.is_some() { return Err(de::Error::duplicate_field("Settings")); } sett = Some(map.next_value()?); } - SwaystatusConfigField::Elements | SwaystatusConfigField::elements => { + SwaystatusConfigField::Element => { if elem.is_some() { return Err(de::Error::duplicate_field("Elements")); } diff --git a/testconfig b/testconfig index a1de210..b4880c1 100644 --- a/testconfig +++ b/testconfig @@ -1,18 +1,18 @@ [Settings] separator = ", " -[[Elements]] +[[Element]] Plugin = "ClockPlugin" -[Elements.Config] +[Element.Config] Format = "%+" -[[Elements]] +[[Element]] Plugin = "ClockPlugin" -[Elements.Config] +[Element.Config] Format = "%+" -[Elements.Config.RefreshRate] +[Element.Config.RefreshRate] Synchronization = "UTCSynchronized" PerThirtyMinutes = 3600 -- cgit v1.2.3