1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
extern crate once_cell;

use crate::validators::prelude::*;

use validators_prelude::regex::Regex;

use once_cell::sync::Lazy;

static RE_KEY: Lazy<Regex> = Lazy::new(|| Regex::new(r"^[0-9a-zA-Z\-_]{40}$").unwrap());

#[derive(Debug, Clone, Validator)]
#[validator(regex(RE_KEY))]
pub struct ReCaptchaKey(String);

impl ReCaptchaKey {
    #[inline]
    pub fn as_str(&self) -> &str {
        self.0.as_str()
    }
}

#[derive(Debug, Clone, Validator)]
#[validator(base64_url(padding(NotAllow)))]
pub struct ReCaptchaToken(String);

impl ReCaptchaToken {
    #[inline]
    pub fn as_str(&self) -> &str {
        self.0.as_str()
    }
}