1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
pub fn recognize(input: &str) -> Option<char> {
    match input {
        " ██ \n█  █\n█  █\n████\n█  █\n█  █" => Some('A'),
        "███ \n█  █\n███ \n█  █\n█  █\n███ " => Some('B'),
        " ██ \n█  █\n█   \n█   \n█  █\n ██ " => Some('C'),
        "████\n█   \n███ \n█   \n█   \n████" => Some('E'),
        "████\n█   \n███ \n█   \n█   \n█   " => Some('F'),
        " ██ \n█  █\n█   \n█ ██\n█  █\n ███" => Some('G'),
        "█  █\n█  █\n████\n█  █\n█  █\n█  █" => Some('H'),
        "  ██\n   █\n   █\n   █\n█  █\n ██ " => Some('J'),
        "█  █\n█ █ \n██  \n█ █ \n█ █ \n█  █" => Some('K'),
        "█   \n█   \n█   \n█   \n█   \n████" => Some('L'),
        "███ \n█  █\n█  █\n███ \n█   \n█   " => Some('P'),
        "███ \n█  █\n█  █\n███ \n█ █ \n█  █" => Some('R'),
        "█  █\n█  █\n█  █\n█  █\n█  █\n ██ " => Some('U'),
        // 'Y' stands out with width 5:
        "█   █\n█   █\n █ █ \n  █  \n  █  \n  █  " => Some('Y'),
        "████\n   █\n  █ \n █  \n█   \n████" => Some('Z'),
        _ => None,
    }
}