opy-rs 0.3.8

Standalone OverPy-compatible .opy implementation with parsing, tooling, and bounded Workshop compilation.
Documentation
pub(crate) fn codepoint(name: &str) -> Option<char> {
    let value = match name {
        "copyright" => 0xA9,
        "registered" => 0xAE,
        "macron" => 0xAF,
        "middle_dot" => 0xB7,
        "zero_width_space" => 0x00AD,
        "horizontal_bar" => 0x2015,
        "reference_mark" => 0x203B,
        "asterism" => 0x2042,
        "left_arrow" => 0x2190,
        "up_arrow" => 0x2191,
        "right_arrow" => 0x2192,
        "down_arrow" => 0x2193,
        "horizontal_arrow" => 0x2194,
        "vertical_arrow" => 0x2195,
        "top_left_arrow" => 0x2196,
        "top_right_arrow" => 0x2197,
        "bottom_right_arrow" => 0x2198,
        "bottom_left_arrow" => 0x2199,
        "right_double_arrow" => 0x21D2,
        "horizontal_double_arrow" => 0x21D4,
        "infinity" => 0x221E,
        "fullwidth_block" => 0x2592,
        "black_square" => 0x25A0,
        "white_square" => 0x25A1,
        "square_in_square" => 0x25A3,
        "square_horizontal_lines" => 0x25A4,
        "square_vertical_lines" => 0x25A5,
        "square_grid_lines" => 0x25A6,
        "square_top_left_bottom_right_lines" => 0x25A7,
        "square_top_right_bottom_left_lines" => 0x25A8,
        "square_diagonal_lines" => 0x25A9,
        "up_black_triangle" => 0x25B2,
        "up_white_triangle" => 0x25B3,
        "right_black_triangle" => 0x25B6,
        "right_white_triangle" => 0x25B7,
        "down_black_triangle" => 0x25BC,
        "down_white_triangle" => 0x25BD,
        "left_black_triangle" => 0x25C0,
        "left_white_triangle" => 0x25C1,
        "black_diamond" => 0x25C6,
        "white_diamond" => 0x25C7,
        "diamond_in_diamond" => 0x25C8,
        "white_circle" => 0x25CB,
        "black_circle" => 0x25CF,
        "black_star" => 0x2605,
        "white_star" => 0x2606,
        "black_phone" => 0x260E,
        "white_phone" => 0x260F,
        "left_hand" => 0x261C,
        "right_hand" => 0x261E,
        "female" => 0x2640,
        "male" => 0x2642,
        "black_spades" => 0x2660,
        "white_heart" => 0x2661,
        "black_clubs" => 0x2663,
        "white_spades" => 0x2664,
        "black_heart" => 0x2665,
        "white_clubs" => 0x2667,
        "java" => 0x2668,
        "quarter_note" => 0x2669,
        "eighth_note" => 0x266A,
        "sixteenth_double_note" => 0x266C,
        "flat_note" => 0x266D,
        "fullwidth_space" => 0x3000,
        "industrial_symbol" => 0x3004,
        "postal_face" => 0x3020,
        "box_with_x" => 0x303F,
        _ => return None,
    };
    char::from_u32(value)
}