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
/// Transform a character to it's mathematical double-struck
/// equivalent.
pub fn math_double_struck(c: char) -> Option<char> {
    match c {
        // Digits
        '0' => Some('𝟘'),
        '1' => Some('𝟙'),
        '2' => Some('𝟚'),
        '3' => Some('𝟛'),
        '4' => Some('𝟜'),
        '5' => Some('𝟝'),
        '6' => Some('𝟞'),
        '7' => Some('𝟟'),
        '8' => Some('𝟠'),
        '9' => Some('𝟡'),

        // 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,
    }
}