diff --git a/src/config.rs b/src/config.rs index d3b7b65..a60aa44 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,5 +1,6 @@ use rustc_hash::FxHashMap; use serde::Deserialize; +use serde::Deserializer; use std::env; use std::mem; use std::path::PathBuf; @@ -64,6 +65,7 @@ pub struct Config { pub agent: bool, pub ignore_update_type: UpdateType, pub images: ImageConfig, + #[serde(deserialize_with = "empty_as_none")] pub refresh_interval: Option, pub registries: FxHashMap, pub servers: FxHashMap, @@ -151,3 +153,15 @@ impl Default for Config { Self::new() } } + +fn empty_as_none<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + let s = String::deserialize(deserializer)?; + if s.is_empty() { + Ok(None) + } else { + Ok(Some(s)) + } +}