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
pub fn recognize(input: &str) -> Result<char, String> {
    Ok(match input {
        " ██  \n█  █ \n█  █ \n████ \n█  █ \n█  █ " => 'A',
        "███  \n█  █ \n███  \n█  █ \n█  █ \n███  " => 'B',
        " ██  \n█  █ \n█    \n█    \n█  █ \n ██  " => 'C',
        "████ \n█    \n███  \n█    \n█    \n████ " => 'E',
        "████ \n█    \n███  \n█    \n█    \n█    " => 'F',
        " ██  \n█  █ \n█    \n█ ██ \n█  █ \n ███ " => 'G',
        "█  █ \n█  █ \n████ \n█  █ \n█  █ \n█  █ " => 'H',
        " ███ \n  █  \n  █  \n  █  \n  █  \n ███ " => 'I',
        "  ██ \n   █ \n   █ \n   █ \n█  █ \n ██  " => 'J',
        "█  █ \n█ █  \n██   \n█ █  \n█ █  \n█  █ " => 'K',
        "█    \n█    \n█    \n█    \n█    \n████ " => 'L',
        " ██  \n█  █ \n█  █ \n█  █ \n█  █ \n ██  " => 'O',
        "███  \n█  █ \n█  █ \n███  \n█    \n█    " => 'P',
        "███  \n█  █ \n█  █ \n███  \n█ █  \n█  █ " => 'R',
        " ███ \n█    \n█    \n ██  \n   █ \n███  " => 'S',
        "█  █ \n█  █ \n█  █ \n█  █ \n█  █ \n ██  " => 'U',
        "█   █\n█   █\n █ █ \n  █  \n  █  \n  █  " => 'Y',
        "████ \n   █ \n  █  \n █   \n█    \n████ " => 'Z',
        _ => {
            return Err(format!("Unrecognized character:\n{}", input));
        }
    })
}