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)
}