1pub const ALPHABET_STD: &[char] = &[
18 '_', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
19 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
20 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
21 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
22];
23
24pub const LOWERCASE: &[char] = &[
27 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
28 't', 'u', 'v', 'w', 'x', 'y', 'z',
29];
30
31pub const UPPERCASE: &[char] = &[
34 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
35 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
36];
37
38pub const NUMBERS: &[char] = &['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
41
42pub const HEXADECIMAL_LOWERCASE: &[char] = &[
45 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
46];
47
48pub const HEXADECIMAL_UPPERCASE: &[char] = &[
51 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
52];
53
54pub const ALPHANUMERIC: &[char] = &[
58 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
59 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B',
60 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
61 'V', 'W', 'X', 'Y', 'Z',
62];
63
64pub const ALPHANUMERIC_LOWERCASE: &[char] = &[
68 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
69 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
70];
71
72pub const ALPHANUMERIC_UPPERCASE: &[char] = &[
76 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
77 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
78];
79
80pub const NOLOOKALIKES: &[char] = &[
84 '3', '4', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N',
85 'P', 'Q', 'R', 'T', 'U', 'V', 'W', 'X', 'Y', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
86 'k', 'm', 'n', 'p', 'q', 'r', 't', 'w', 'x', 'y', 'z',
87];
88
89pub const NOLOOKALIKES_SAFE: &[char] = &[
94 '6', '7', '8', '9', 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'T',
95 'W', 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 't', 'w', 'z',
96];
97
98#[cfg(test)]
99mod tests {
100 use super::*;
101
102 #[test]
103 fn std_length() {
104 assert_eq!(ALPHABET_STD.len(), 64);
105 }
106
107 #[test]
108 fn lowercase_length() {
109 assert_eq!(LOWERCASE.len(), 26);
110 }
111
112 #[test]
113 fn uppercase_length() {
114 assert_eq!(UPPERCASE.len(), 26);
115 }
116
117 #[test]
118 fn alphanumeric_length() {
119 assert_eq!(ALPHANUMERIC.len(), 62);
120 }
121
122 #[test]
123 fn alphanumeric_lowercase_length() {
124 assert_eq!(ALPHANUMERIC_LOWERCASE.len(), 36);
125 }
126
127 #[test]
128 fn alphanumeric_uppercase_length() {
129 assert_eq!(ALPHANUMERIC_UPPERCASE.len(), 36);
130 }
131
132 #[test]
133 fn nolookalikes_length() {
134 assert_eq!(NOLOOKALIKES.len(), 49);
135 }
136
137 #[test]
138 fn nolookalikes_safe_length() {
139 assert_eq!(NOLOOKALIKES_SAFE.len(), 36);
140 }
141}