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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Convert characters into HTML entities (source: https://www.freeformatter.com/html-entities.html)
pub fn ascii(email: &str) -> String {
let mut result: String = String::new();
for letter in email.split("") {
result.push_str(match letter {
" " => " ", // Space
"!" => "!", // Exclamation mark
"\"" => """, // Quotation mark
"#" => "#", // Number sign
"$" => "$", // Dollar sign
"%" => "%", // Percent sign
"&" => "&", // Ampersand
"'" => "'", // Apostrophe
"(" => "(", // Opening/Left Parenthesis
")" => ")", // Closing/Right Parenthesis
"*" => "*", // Asterisk
"+" => "+", // Plus sign
"," => ",", // Comma
"-" => "-", // Hyphen
"." => ".", // Period
"/" => "/", // Slash
"0" => "0", // Digit 0
"1" => "1", // Digit 1
"2" => "2", // Digit 2
"3" => "3", // Digit 3
"4" => "4", // Digit 4
"5" => "5", // Digit 5
"6" => "6", // Digit 6
"7" => "7", // Digit 7
"8" => "8", // Digit 8
"9" => "9", // Digit 9
":" => ":", // Colon
";" => ";", // Semicolon
"<" => "<", // Less-than
"=" => "=", // Equals sign
">" => ">", // Greater than
"?" => "?", // Question mark
"@" => "@", // At sign
"A" => "A", // Uppercase A
"B" => "B", // Uppercase B
"C" => "C", // Uppercase C
"D" => "D", // Uppercase D
"E" => "E", // Uppercase E
"F" => "F", // Uppercase F
"G" => "G", // Uppercase G
"H" => "H", // Uppercase H
"I" => "I", // Uppercase I
"J" => "J", // Uppercase J
"K" => "K", // Uppercase K
"L" => "L", // Uppercase L
"M" => "M", // Uppercase M
"N" => "N", // Uppercase N
"O" => "O", // Uppercase O
"P" => "P", // Uppercase P
"Q" => "Q", // Uppercase Q
"R" => "R", // Uppercase R
"S" => "S", // Uppercase S
"T" => "T", // Uppercase T
"U" => "U", // Uppercase U
"V" => "V", // Uppercase V
"W" => "W", // Uppercase W
"X" => "X", // Uppercase X
"Y" => "Y", // Uppercase Y
"Z" => "Z", // Uppercase Z
"[" => "[", // Opening/Left square bracket
"\\" => "\", // Backslash
"]" => "]", // Closing/Right square bracket
"^" => "^", // Caret
"_" => "_", // Underscore
"`" => "`", // Grave accent
"a" => "a", // Lowercase a
"b" => "b", // Lowercase b
"c" => "c", // Lowercase c
"d" => "d", // Lowercase d
"e" => "e", // Lowercase e
"f" => "f", // Lowercase f
"g" => "g", // Lowercase g
"h" => "h", // Lowercase h
"i" => "i", // Lowercase i
"j" => "j", // Lowercase j
"k" => "k", // Lowercase k
"l" => "l", // Lowercase l
"m" => "m", // Lowercase m
"n" => "n", // Lowercase n
"o" => "o", // Lowercase o
"p" => "p", // Lowercase p
"q" => "q", // Lowercase q
"r" => "r", // Lowercase r
"s" => "s", // Lowercase s
"t" => "t", // Lowercase t
"u" => "u", // Lowercase u
"v" => "v", // Lowercase v
"w" => "w", // Lowercase w
"x" => "x", // Lowercase x
"y" => "y", // Lowercase y
"z" => "z", // Lowercase z
"{" => "{", // Opening/Left curly brace
"|" => "|", // Vertical bar
"}" => "}", // Closing/Right curly brace
"~" => "~", // Tilde
_ => letter // Default (Ignore)
});
}
result
}