email_syntax_verify_opt 0.1.0

Ultra-fast, zero-allocation email validation library optimized for enterprise production use
Documentation
use crate::validator::EmailValidator;

pub trait ValidateEmail {
    fn validate_email(&self) -> bool;
}

impl ValidateEmail for str {
    #[inline]
    fn validate_email(&self) -> bool {
        EmailValidator::validate_str(self)
    }
}

impl ValidateEmail for String {
    #[inline]
    fn validate_email(&self) -> bool {
        EmailValidator::validate_string(self)
    }
}

impl ValidateEmail for &str {
    #[inline]
    fn validate_email(&self) -> bool {
        EmailValidator::validate_str(self)
    }
}

impl<T> ValidateEmail for Option<T>
where
    T: ValidateEmail,
{
    #[inline]
    fn validate_email(&self) -> bool {
        self.as_ref().map_or(true, |email| email.validate_email())
    }
}

impl<T> ValidateEmail for Box<T>
where
    T: ValidateEmail,
{
    #[inline]
    fn validate_email(&self) -> bool {
        T::validate_email(self)
    }
}

impl ValidateEmail for [u8] {
    #[inline]
    fn validate_email(&self) -> bool {
        EmailValidator::validate(self)
    }
}

impl ValidateEmail for &[u8] {
    #[inline]
    fn validate_email(&self) -> bool {
        EmailValidator::validate(self)
    }
}

impl ValidateEmail for Vec<u8> {
    #[inline]
    fn validate_email(&self) -> bool {
        EmailValidator::validate(self)
    }
}