From a82f2a5df3d8e96ce0d6383f1c02a99591c4adbe Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Sat, 11 Jan 2020 15:38:31 +0300 Subject: [PATCH] Simplify needs_encoding() and add a test --- src/mimefactory.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/mimefactory.rs b/src/mimefactory.rs index 538af1cd2..810e47134 100644 --- a/src/mimefactory.rs +++ b/src/mimefactory.rs @@ -1130,14 +1130,8 @@ fn encode_words(word: &str) -> String { } pub fn needs_encoding(to_check: impl AsRef) -> bool { - let to_check = to_check.as_ref(); - - if to_check.is_empty() { - return false; - } - - to_check.chars().any(|c| { - !c.is_ascii_alphanumeric() && c != '-' && c != '_' && c != '.' && c != '~' && c != '%' + !to_check.as_ref().chars().all(|c| { + c.is_ascii_alphanumeric() || c == '-' || c == '_' || c == '.' || c == '~' || c == '%' }) } @@ -1196,4 +1190,12 @@ mod tests { FBQUFBQUFBQQ=="; assert_eq!(wrapped_base64_encode(input), output); } + + #[test] + fn test_needs_encoding() { + assert!(!needs_encoding("")); + assert!(!needs_encoding("foobar")); + assert!(needs_encoding(" ")); + assert!(needs_encoding("foo bar")); + } }