From 7c2244a489c61559a732060fe77afb77637b769a Mon Sep 17 00:00:00 2001 From: Sandro Eiler Date: Tue, 5 Mar 2024 13:08:44 +0100 Subject: [PATCH] Update validator to 0.17 --- Cargo.toml | 2 +- src/domain/subscriber_email.rs | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1a813c6..7e9f9a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ rand = { version = "0.8", features=["std_rng"] } anyhow = "1.0.40" base64 = "0.21.0" argon2 = { version = "0.4", features = ["std"] } -validator = "0.16" +validator = "0.17" tracing-actix-web = "0.7" secrecy = { version = "0.8", features = ["serde"] } actix-web-flash-messages = { version = "0.4", features = ["cookies"] } diff --git a/src/domain/subscriber_email.rs b/src/domain/subscriber_email.rs index 3d6083f..d256a45 100644 --- a/src/domain/subscriber_email.rs +++ b/src/domain/subscriber_email.rs @@ -1,18 +1,25 @@ -use validator::validate_email; +use validator::ValidateEmail; #[derive(Debug)] pub struct SubscriberEmail(String); impl SubscriberEmail { pub fn parse(s: String) -> Result { - if validate_email(&s) { - Ok(Self(s)) + let email = Self(s.clone()); + if email.validate_email() { + Ok(email) } else { Err(format!("{} is not a valid subscriber email.", s)) } } } +impl ValidateEmail for SubscriberEmail { + fn as_email_string(&self) -> Option> { + Some(self.0.as_str().into()) + } +} + impl AsRef for SubscriberEmail { fn as_ref(&self) -> &str { &self.0