Skip to main content

harfrust/hb/
unicode_emoji_table.rs

1/* == Start of generated table == */
2/*
3 * The following tables are generated by running:
4 *
5 *   ./gen-emoji-table.py --rust emoji-data.txt
6 *
7 * on file with this header:
8 *
9 * # emoji-data.txt
10 * # Date: 2025-07-25, 17:54:31 GMT
11 * # © 2025 Unicode®, Inc.
12 * # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
13 * # For terms of use and license, see https://www.unicode.org/terms_of_use.html
14 * #
15 * # Emoji Data for UTS #51
16 * # Version: 17.0
17 * #
18 * # For documentation and usage, see https://www.unicode.org/reports/tr51
19 */
20
21#![allow(unused_parens)]
22#![allow(clippy::unnecessary_cast, clippy::unreadable_literal, clippy::double_parens)]
23
24use crate::hb::unicode::Codepoint;
25
26#[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)]
27pub(crate) static _hb_emoji_u8: [u8; 624]=
28[
29    1,  0,  0,  0, 50,  4,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,
30    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
31    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
32    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,118,152,
33    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
34    0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
35    3,  4,  0,  0,  5,  0,  6,  0,  0,  0,  0,  0,  7,  0,  0,  8,
36    0,  0,  0,  9,  0,  0, 10, 11, 12, 13, 14, 15, 16, 17, 18,  0,
37    0,  0,  0,  0, 19,  0,  0,  0,  0,  0,  0,  0, 20, 21,  0,  0,
38   22,  0,  0,  0,  0,  0,  0,  0,  0,  0, 23,  0,  0,  0,  0,  0,
39   24,  0, 25, 26,  0, 27, 28, 29, 30, 31,  1,  1, 32,  1, 33, 34,
40    1,  1,  1, 35, 36, 37, 38, 39,  1, 40,  1, 41,  0,  0,  0, 42,
41   43, 44, 45, 46, 47, 48,  1,  1,  0, 49,  1,  1,  0,  0,  0,  0,
42    1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
43    0,  0,  0,  0,  0,  0,  0,  0,255,255,255,255,255,255,255,255,
44    0,  0,  0,  0,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,
45    0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  2,
46    0,  0,240,  3,  0,  6,  0,  0,  0,  0,  0, 12,  0,  1,  0,  0,
47    0,128,  0,  0,  0,254, 15,  7,  4,  0,  0,  0,  0,  0,  0,  0,
48    0,  0,  0,  0,  0, 12, 64,  0,  1,  0,  0,  0,  0,  0,  0,120,
49   31, 64, 50, 33, 77,196,  0,  7,  5,255, 15,128,105,  1,  0,200,
50    0,  0,252, 26,131, 12,  3, 96, 48,193, 26,  0,  0,  6,191, 39,
51   36,191, 84, 32,  2,  1, 24,  0,144, 80,184,  0, 24,  0,  0,  0,
52    0,  0,224,  0,  2,  0,  1,128,  0,  0,  0,  0,  0,  0, 48,  0,
53  224,  0,  0, 24,  0,  0,  0,  0,  0,  0, 33,  0,  0,  0,  0,  0,
54    0,  0,  0,  0,  0,  0,  1, 32,  0,  0,128,  2,  0,  0,  0,  0,
55   16,  0,  0,  0,  0,240,  0,  0,  0,  0,240,255,  0,128,  1,  0,
56    1,128,  1,  0,  0,  0,192,255,  0,  0,  0,  0,  0,  0,  3,192,
57    0, 64,254,  7,  0,192,255,255,255,255,255,255, 63,  0,  0,  0,
58  254,255,  0,  4,  0,128,252,247,  0,254,255,255,192,255,255,255,
59  255,255,255,255,243,255,255,255,255,255,207,206,255,255,255,255,
60  255,255,255,255,255,255,185,  7,255,255,255,255,255,255,255,191,
61  255,255,255,255,255,255,255, 63,  0,126,255,255,255,128,249,  7,
62  128, 60, 97,  0, 48,  1,  6, 16, 28,  0, 14,112, 10,129,  8,252,
63  255,255,  0,  0,  0,  0,  0,  0, 63,248,231,255, 63,250,249,255,
64    0,  0,  0,252,255,255,255,255,  0,240,  0,  0,  0,  0,  0,  0,
65    0,255,  0,252,  0,  0,  0,  0,  0,255,  0,  0,  0,192,  0,240,
66  252,255,  0,254,255,255,255,255,  0,240,255,255,255,255,255,247,
67  191,255,255,255,255,255,255,255,  0,  0,  0,255,  0,192,255,255,
68];
69
70#[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast)]
71#[inline(always)]
72fn _hb_emoji_b4 (a: &[u8], i: usize) -> u8
73{
74  (a[i>>1]>>((i&1)<<2))&15
75}
76#[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast)]
77#[inline(always)]
78fn _hb_emoji_b1 (a: &[u8], i: usize) -> u8
79{
80  (a[i>>3]>>((i&7)<<0))&1
81}
82#[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast, missing_docs)]
83#[inline]
84pub(crate) fn _hb_emoji_is_Extended_Pictographic_u8 (u: usize) -> u8
85{
86  /* packtab: [2^4,2^4,2^6] */
87  if u<131070usize { (_hb_emoji_b1(&_hb_emoji_u8[224usize..],(((_hb_emoji_u8[64usize+((((_hb_emoji_b4(&_hb_emoji_u8,(((((u)>>6))>>4) as usize) as usize)) as usize)<<4) as usize+((((u)>>6))&15) as usize) as usize]) as usize)<<6) as usize+((u)&63) as usize)) as u8 } else { 0 }
88}
89
90#[inline]
91pub(crate) fn is_Extended_Pictographic (u: Codepoint) -> bool
92{
93  _hb_emoji_is_Extended_Pictographic_u8 (u as usize) != 0
94}
95
96
97
98/* == End of generated table == */