From 72788daca079a8396300432a1900ea31b5223093 Mon Sep 17 00:00:00 2001 From: link2xt Date: Mon, 17 Nov 2025 13:07:44 +0000 Subject: [PATCH] refactor: use HashMap::extract_if() stabilized in Rust 1.88.0 --- src/mimeparser.rs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/mimeparser.rs b/src/mimeparser.rs index 97716776f..2301d3c2f 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -273,12 +273,11 @@ impl MimeMessage { &mut chat_disposition_notification_to, &mail, ); - headers.retain(|k, _| { - !is_hidden(k) || { - headers_removed.insert(k.to_string()); - false - } - }); + headers_removed.extend( + headers + .extract_if(|k, _v| is_hidden(k)) + .map(|(k, _v)| k.to_string()), + ); // Parse hidden headers. let mimetype = mail.ctype.mimetype.parse::()?; @@ -1680,12 +1679,11 @@ impl MimeMessage { // See . let has_header_protection = part.ctype.params.contains_key("hp"); - headers.retain(|k, _| { - !(has_header_protection || is_protected(k)) || { - headers_removed.insert(k.to_string()); - false - } - }); + headers_removed.extend( + headers + .extract_if(|k, _v| has_header_protection || is_protected(k)) + .map(|(k, _v)| k.to_string()), + ); for field in fields { // lowercasing all headers is technically not correct, but makes things work better let key = field.get_key().to_lowercase();