summaryrefslogtreecommitdiffstats
path: root/melib/src/conf.rs
diff options
context:
space:
mode:
Diffstat (limited to 'melib/src/conf.rs')
-rw-r--r--melib/src/conf.rs29
1 files changed, 15 insertions, 14 deletions
diff --git a/melib/src/conf.rs b/melib/src/conf.rs
index 1b7fed64..985e38eb 100644
--- a/melib/src/conf.rs
+++ b/melib/src/conf.rs
@@ -78,9 +78,9 @@ pub struct FolderConf {
pub alias: Option<String>,
#[serde(default = "true_val")]
pub autoload: bool,
- #[serde(deserialize_with = "toggleflag_de")]
+ #[serde(default)]
pub subscribe: ToggleFlag,
- #[serde(deserialize_with = "toggleflag_de")]
+ #[serde(default)]
pub ignore: ToggleFlag,
#[serde(default = "none")]
pub usage: Option<SpecialUsageMailbox>,
@@ -158,18 +158,6 @@ impl ToggleFlag {
}
}
-pub fn toggleflag_de<'de, D>(deserializer: D) -> std::result::Result<ToggleFlag, D::Error>
-where
- D: Deserializer<'de>,
-{
- let s = <bool>::deserialize(deserializer);
- Ok(match s {
- Err(_) => ToggleFlag::Unset,
- Ok(true) => ToggleFlag::True,
- Ok(false) => ToggleFlag::False,
- })
-}
-
impl Serialize for ToggleFlag {
fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
where
@@ -182,3 +170,16 @@ impl Serialize for ToggleFlag {
}
}
}
+
+impl<'de> Deserialize<'de> for ToggleFlag {
+ fn deserialize<D>(deserializer: D) -> std::result::Result<Self, D::Error>
+ where
+ D: Deserializer<'de>,
+ {
+ let s = <bool>::deserialize(deserializer);
+ Ok(match s? {
+ true => ToggleFlag::True,
+ false => ToggleFlag::False,
+ })
+ }
+}