diff --git a/pkgs/mailnix/src/config.rs b/pkgs/mailnix/src/config.rs index 9e3240f..ce019c3 100644 --- a/pkgs/mailnix/src/config.rs +++ b/pkgs/mailnix/src/config.rs @@ -153,42 +153,36 @@ impl Config { pub fn merge>(&mut self, path: P) -> Result<(), Box> { let mut other = Config::load(path).unwrap(); - if !self - .domains - .iter() - .all(|domain| other.domains.contains(domain)) - { - return Err( - "domains: Duplicate entry during merge detected, aborting..." - .to_string() - .into(), - ); + for domain in self.domains.iter() { + if other.domains.contains(domain) { + return Err( + "domains: Duplicate entry ({domain}) during merge detected, aborting..." + .to_string() + .into(), + ); + } } self.domains.append(&mut other.domains); - if !self - .accounts - .keys() - .all(|name| other.accounts.contains_key(name)) - { - return Err( - "accounts: Duplicate entry during merge detected, aborting..." - .to_string() - .into(), - ); + for name in self.accounts.keys() { + if other.accounts.contains_key(name) { + return Err( + "accounts: Duplicate entry ({name}) during merge detected, aborting..." + .to_string() + .into(), + ); + } } self.accounts.extend(other.accounts); - if !self - .aliases - .keys() - .all(|alias| other.aliases.contains_key(alias)) - { - return Err( - "aliases: Duplicate entry during merge detected, aborting..." - .to_string() - .into(), - ); + for alias in self.aliases.keys() { + if other.aliases.contains_key(alias) { + return Err( + "aliases: Duplicate entry ({alias}) during merge detected, aborting..." + .to_string() + .into(), + ); + } } self.aliases.extend(other.aliases);