From dcf89e774a6b3fc284e6a91641ca1d915b219776 Mon Sep 17 00:00:00 2001 From: Alexis Mousset Date: Mon, 3 Nov 2014 16:05:21 +0100 Subject: [PATCH] Make ServerInfo::supports_feature return an Option --- src/client/mod.rs | 6 +++--- src/client/server_info.rs | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/client/mod.rs b/src/client/mod.rs index aa72123..0ce8b8a 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -118,15 +118,15 @@ impl Client { // Checks message encoding according to the server's capability // TODO : Add an encoding check. - if ! self.server_info.clone().unwrap().supports_feature(extension::EightBitMime).is_ok() { - if ! message.clone().to_string().is_ascii() { + if ! self.server_info.clone().unwrap().supports_feature(extension::EightBitMime).is_some() { + if ! message.clone().is_ascii() { self.smtp_fail::("Server does not accepts UTF-8 strings"); } } // Get maximum message size if defined let max_size = match self.server_info.clone().unwrap().supports_feature(extension::Size(0)) { - Ok(extension::Size(max)) => max, + Some(extension::Size(max)) => max, _ => -1 }; diff --git a/src/client/server_info.rs b/src/client/server_info.rs index 561de0c..3e1600a 100644 --- a/src/client/server_info.rs +++ b/src/client/server_info.rs @@ -63,17 +63,17 @@ impl ServerInfo { } /// Checks if the server supports an ESMTP feature - pub fn supports_feature(&self, keyword: Extension) -> Result { + pub fn supports_feature(&self, keyword: Extension) -> Option { match self.esmtp_features.clone() { Some(esmtp_features) => { for feature in esmtp_features.iter() { if keyword.same_extension_as(*feature) { - return Ok(*feature); + return Some(*feature); } } - Err({}) + None }, - None => Err({}) + None => None } } } @@ -118,18 +118,18 @@ mod test { assert_eq!(ServerInfo{ name: String::from_str("name"), esmtp_features: Some(vec!(extension::EightBitMime)) - }.supports_feature(extension::EightBitMime), Ok(extension::EightBitMime)); + }.supports_feature(extension::EightBitMime), Some(extension::EightBitMime)); assert_eq!(ServerInfo{ name: String::from_str("name"), esmtp_features: Some(vec!(extension::Size(42), extension::EightBitMime)) - }.supports_feature(extension::EightBitMime), Ok(extension::EightBitMime)); + }.supports_feature(extension::EightBitMime), Some(extension::EightBitMime)); assert_eq!(ServerInfo{ name: String::from_str("name"), esmtp_features: Some(vec!(extension::Size(42), extension::EightBitMime)) - }.supports_feature(extension::Size(0)), Ok(extension::Size(42))); + }.supports_feature(extension::Size(0)), Some(extension::Size(42))); assert!(ServerInfo{ name: String::from_str("name"), esmtp_features: Some(vec!(extension::EightBitMime)) - }.supports_feature(extension::Size(42)).is_err()); + }.supports_feature(extension::Size(42)).is_none()); } }