refined_type/rule/string/
alphabet.rs

1use crate::{declare_regex_rule, Refined};
2
3/// A type that holds a value satisfying the `AlphabetRule`
4///
5/// # Example
6/// ```rust
7/// # use refined_type::rule::Alphabet;
8///
9/// let alphabet_result = Alphabet::new("alphabet");
10/// assert!(alphabet_result.is_ok());
11///
12/// let alphabet_result = Alphabet::new("I am the 1st".to_string());
13/// assert!(alphabet_result.is_err());
14/// ```
15pub type Alphabet<STRING> = Refined<AlphabetRule<STRING>>;
16
17declare_regex_rule![pub AlphabetRule, r"^[a-zA-Z]*$"];
18
19#[cfg(test)]
20mod test {
21    use crate::rule::Alphabet;
22
23    #[test]
24    fn test_alphabet_ok_empty() {
25        let alphabet_result = Alphabet::new("".to_string());
26        assert!(alphabet_result.is_ok());
27    }
28
29    #[test]
30    fn test_alphabet_ok_non_empty() {
31        let alphabet_result = Alphabet::new("alphabet".to_string());
32        assert!(alphabet_result.is_ok());
33    }
34
35    #[test]
36    fn test_alphabet_err() {
37        let alphabet_result = Alphabet::new("I am the 1st".to_string());
38        assert!(alphabet_result.is_err());
39    }
40}