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
/// Transform a character to it's mathematical script equivalent.
pub fn math_script(c: char) -> Option<char> {
    match c {
        // Latin capital letters.
        'A' => Some('𝒜'),
        'B' => Some('ℬ'),
        'C' => Some('𝒞'),
        'D' => Some('𝒟'),
        'E' => Some('ℰ'),
        'F' => Some('ℱ'),
        'G' => Some('𝒢'),
        'H' => Some('ℋ'),
        'I' => Some('ℐ'),
        'J' => Some('𝒥'),
        'K' => Some('𝒦'),
        'L' => Some('ℒ'),
        'M' => Some('ℳ'),
        'N' => Some('𝒩'),
        'O' => Some('𝒪'),
        'P' => Some('𝒫'),
        'Q' => Some('𝒬'),
        'R' => Some('ℛ'),
        'S' => Some('𝒮'),
        'T' => Some('𝒯'),
        'U' => Some('𝒰'),
        'V' => Some('𝒱'),
        'W' => Some('𝒲'),
        'X' => Some('𝒳'),
        'Y' => Some('𝒴'),
        'Z' => Some('𝒵'),

        // Latin small letters.
        'a' => Some('𝒶'),
        'b' => Some('𝒷'),
        'c' => Some('𝒸'),
        'd' => Some('𝒹'),
        'e' => Some('ℯ'),
        'f' => Some('𝒻'),
        'g' => Some('ℊ'),
        'h' => Some('𝒽'),
        'i' => Some('𝒾'),
        'j' => Some('𝒿'),
        'k' => Some('𝓀'),
        'l' => Some('𝓁'),
        'm' => Some('𝓂'),
        'n' => Some('𝓃'),
        'o' => Some('ℴ'),
        'p' => Some('𝓅'),
        'q' => Some('𝓆'),
        'r' => Some('𝓇'),
        's' => Some('𝓈'),
        't' => Some('𝓉'),
        'u' => Some('𝓊'),
        'v' => Some('𝓋'),
        'w' => Some('𝓌'),
        'x' => Some('𝓍'),
        'y' => Some('𝓎'),
        'z' => Some('𝓏'),

        // No equivalence.
        _ => None,
    }
}