1#![allow(unused_parens)]
18#![allow(clippy::unnecessary_cast, clippy::unreadable_literal, clippy::double_parens)]
19#![allow(non_camel_case_types)]
20#![allow(unused_imports)]
21
22use super::ot_shaper_indic::ot_category_t::*;
23use super::ot_shaper_indic::ot_position_t::*;
24
25
26use OT_A as _OT_A; use OT_As as _OT_As; use OT_C as _OT_C; use OT_CM as _OT_CM; use OT_CS as _OT_CS; use OT_DOTTEDCIRCLE as _OT_DC; use OT_H as _OT_H; use OT_M as _OT_M; use OT_MH as _OT_MH; use OT_ML as _OT_ML; use OT_MPst as _OT_MP; use OT_MR as _OT_MR; use OT_MW as _OT_MW; use OT_MY as _OT_MY; use OT_N as _OT_N; use OT_PLACEHOLDER as _OT_GB; use OT_PT as _OT_PT; use OT_Ra as _OT_R; use OT_Repha as _OT_Rf; use OT_Robatic as _OT_Rt; use OT_SM as _OT_SM; use OT_SMPst as _OT_SP; use OT_Symbol as _OT_S; use OT_V as _OT_V; use OT_VAbv as _OT_VA; use OT_VBlw as _OT_VB; use OT_VPre as _OT_VL; use OT_VPst as _OT_VR; use OT_VS as _OT_VS; use OT_X as _OT_X; use OT_Xgroup as _OT_Xg; use OT_Ygroup as _OT_Yg; use OT_ZWJ as _OT_ZWJ; use OT_ZWNJ as _OT_ZWNJ; use POS_ABOVE_C as _POS_T; use POS_AFTER_MAIN as _POS_A; use POS_AFTER_POST as _POS_AP; use POS_AFTER_SUB as _POS_AS; use POS_BASE_C as _POS_C; use POS_BEFORE_SUB as _POS_BS; use POS_BELOW_C as _POS_B; use POS_END as _POS_X; use POS_POST_C as _POS_R; use POS_PRE_C as _POS_L; use POS_PRE_M as _POS_LM; use POS_SMVD as _POS_SM; const fn indic_combine_categories (s: u8, m: u8) -> u16
75{
76 (s as u16) | ((m as u16) << 8)
77}
78
79
80#[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)]
81pub(crate) static _hb_indic_values: [u16; 42]=
82[
83 indic_combine_categories(_OT_A, _POS_SM), indic_combine_categories(_OT_As, _POS_X),
84 indic_combine_categories(_OT_C, _POS_C), indic_combine_categories(_OT_CM, _POS_C),
85 indic_combine_categories(_OT_CS, _POS_C), indic_combine_categories(_OT_DC, _POS_C),
86 indic_combine_categories(_OT_GB, _POS_C), indic_combine_categories(_OT_H, _POS_B),
87 indic_combine_categories(_OT_H, _POS_T), indic_combine_categories(_OT_H, _POS_X),
88 indic_combine_categories(_OT_M, _POS_A), indic_combine_categories(_OT_M, _POS_AP),
89 indic_combine_categories(_OT_M, _POS_AS), indic_combine_categories(_OT_M, _POS_B),
90 indic_combine_categories(_OT_M, _POS_BS), indic_combine_categories(_OT_M, _POS_LM),
91 indic_combine_categories(_OT_MH, _POS_X), indic_combine_categories(_OT_ML, _POS_X),
92 indic_combine_categories(_OT_MP, _POS_AP), indic_combine_categories(_OT_MR, _POS_X),
93 indic_combine_categories(_OT_MW, _POS_X), indic_combine_categories(_OT_MY, _POS_X),
94 indic_combine_categories(_OT_N, _POS_X), indic_combine_categories(_OT_PT, _POS_X),
95 indic_combine_categories(_OT_R, _POS_C), indic_combine_categories(_OT_Rf, _POS_X),
96 indic_combine_categories(_OT_Rt, _POS_X), indic_combine_categories(_OT_S, _POS_SM),
97 indic_combine_categories(_OT_SM, _POS_BS), indic_combine_categories(_OT_SM, _POS_SM),
98 indic_combine_categories(_OT_SP, _POS_SM), indic_combine_categories(_OT_V, _POS_C),
99 indic_combine_categories(_OT_VA, _POS_T), indic_combine_categories(_OT_VB, _POS_B),
100 indic_combine_categories(_OT_VL, _POS_L), indic_combine_categories(_OT_VR, _POS_R),
101 indic_combine_categories(_OT_VS, _POS_X), indic_combine_categories(_OT_X, _POS_X),
102 indic_combine_categories(_OT_Xg, _POS_X), indic_combine_categories(_OT_Yg, _POS_X),
103 indic_combine_categories(_OT_ZWJ, _POS_X),indic_combine_categories(_OT_ZWNJ, _POS_X),
104];
105#[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)]
106pub(crate) static _hb_indic_u8: [u8; 1220]=
107[
108 1, 0, 50, 4, 5, 96, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0,
109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186, 0, 0, 0, 0, 0,
111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,
112 0, 0, 0, 0,208,224, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
113 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9,
114 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 22, 23,
115 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 0, 0,
116 0, 27, 0, 0, 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 31, 0, 0, 0, 32, 0, 0, 0, 33, 0, 34,
118 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
119 0, 0, 36, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 0, 0, 0, 25, 2, 10, 0, 0, 0, 0, 26, 0,
121 27, 0, 0, 0, 28, 0, 0, 0, 0, 0, 29, 11, 30, 1, 1, 1,
122 4, 31, 32, 33, 34, 1, 6, 2, 35, 1, 12, 13, 7, 1, 1, 3,
123 36, 14, 15, 37, 16, 17, 6, 2, 38, 39, 18, 40, 7, 1, 1, 3,
124 41, 42, 43, 44, 45, 46, 19, 2, 47, 0, 18, 48, 49, 1, 1, 3,
125 20, 14, 50, 51, 0, 0, 21, 2, 0, 52, 53, 13, 7, 1, 1, 3,
126 20, 54, 15, 55, 56, 17, 6, 2, 57, 0, 58, 59, 60, 61, 62, 63,
127 4, 64, 65, 66, 16, 0, 19, 2, 0, 0, 67, 8, 9, 1, 1, 3,
128 4, 22, 68, 69, 70, 71, 23, 2, 0, 0, 12, 8, 9, 1, 1, 3,
129 72, 22, 73, 74, 75, 76, 23, 2, 77, 0, 78, 8, 9, 1, 1, 1,
130 4, 79, 80, 81, 82, 83, 21, 2, 0, 84, 85, 1, 1, 86, 87, 88,
131 89, 90, 2, 91, 92, 93, 94, 95, 96, 1, 97, 98, 2, 99, 0, 0,
132 0, 0, 1, 1, 1,100,101, 11,102,103,104,105,106,107, 2, 10,
133 0, 0, 0, 0,108, 5, 5,109,110,111, 0,112,113, 0,114, 0,
134 0, 0, 0, 0, 0, 0, 0, 0,115, 0,116, 0, 0, 0, 0, 0,
135 0, 0, 0,117, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 5, 5,
136 119,120, 0, 0, 0, 0,121, 1, 2,122, 0, 0, 0, 0, 1, 1,
137 123,124, 24, 24, 0, 0, 0, 0, 0, 0,125, 0, 0, 0, 0, 0,
138 0,126, 0, 0, 2, 2, 2, 10, 0, 0, 0, 0, 2, 2, 2, 2,
139 4, 4, 4, 4, 10, 2, 2, 2, 26, 2, 2, 2, 8, 8, 8, 8,
140 6, 18, 0, 4, 20, 14, 24, 2, 6, 6, 20, 6, 20, 6, 24, 2,
141 4, 0, 0, 0, 6, 6, 6, 6, 66, 12, 14, 6, 6, 6, 20, 14,
142 2, 0, 36, 50, 52, 18, 38, 68, 0, 0, 0, 32, 0, 0, 2, 16,
143 56, 12, 14, 6, 0, 0, 0, 4, 44, 2, 16, 2, 6, 22, 0, 4,
144 2, 0, 36, 28, 6, 28, 0, 4, 30, 30, 30, 30, 0, 0, 42, 0,
145 34, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 42, 12, 12, 6, 6,
146 6, 6, 24, 2, 2, 18, 36,112, 18, 18, 18, 18, 18, 18,114,116,
147 118,120,122, 18, 0, 6, 6, 6, 44, 10, 0, 2, 54, 32, 46, 10,
148 26, 0, 0, 0, 0, 0, 34, 70, 6, 20, 0, 14, 44, 2, 16, 10,
149 2, 0, 72, 50,124, 48, 0, 32, 48, 32, 46, 0,126, 0, 0, 0,
150 16, 2, 10, 10, 12, 2,128, 0, 6, 6, 6, 14, 6, 14, 24, 2,
151 22, 22, 52, 74, 76, 32, 46, 0, 16, 58, 58, 78,130, 12, 14, 6,
152 2, 0, 36,132,134, 32, 46, 0, 0, 0, 80,136, 16, 0, 0, 0,
153 0, 70, 14, 6, 6, 20, 0, 6, 20, 6, 24, 0, 16, 10, 10, 2,
154 0, 16, 10, 0, 2, 10, 0, 2, 2, 0, 0, 22, 76, 48, 0, 82,
155 54, 22, 84, 0, 12, 12,138, 6, 28, 60, 38, 28, 86, 28, 88, 0,
156 0, 0,140, 86, 2, 10, 16, 0, 26, 2, 16, 2, 28, 60, 38, 60,
157 38, 18, 88, 0, 0, 0, 74, 38, 0, 0, 16, 10,142,144, 0, 0,
158 12, 12,146, 6, 2,148,150, 22, 22, 22, 48, 82, 54, 22, 84,152,
159 0, 0, 2,154, 0, 0, 0, 14, 0, 2, 2, 2, 2, 2, 26, 2,
160 2,156, 2, 2, 90, 6, 6, 6, 6,158, 92, 94,160,162, 62, 58,
161 164,166,168,170, 4, 4, 0, 10, 2, 6, 6, 96, 98, 26, 2,172,
162 174,100,176,178,100,102,102, 2,104, 62,180, 2, 2,182,184,186,
163 12, 12, 12,188, 4, 12,190, 0, 2, 26, 2, 2, 2, 90, 6, 6,
164 6, 6, 0, 92, 62, 94, 98,192,194,196, 96,198,200,106,106,108,
165 108,202, 0, 0, 42, 0,204, 0, 8,206, 8, 8,208, 40,210, 40,
166 40, 2,212,214, 8, 34, 0, 0, 0, 0,216, 0, 4, 4, 4, 0,
167 0, 34, 0, 0, 0, 0,110, 0, 0, 64,110, 0, 0, 0,218, 0,
168 0, 42, 4, 34, 8, 40, 40, 40, 0, 0, 0,220, 2, 2,104, 16,
169 4, 2, 2, 10, 16, 2, 4, 34, 0,222, 78, 2, 56, 12, 0, 0,
170 0, 80, 72, 0, 37, 37, 2, 2, 6, 6, 31, 31, 0, 0, 2, 37,
171 29, 29, 37, 31, 37, 2, 12, 12, 31, 37, 11, 11, 31, 2, 24, 2,
172 14, 14, 36, 36, 37, 11, 6, 37, 22, 27, 12, 37, 27, 27, 37, 6,
173 24, 37, 11, 7, 11, 37, 11, 15, 11, 12, 15, 37, 37, 29, 0, 22,
174 14, 12, 32, 32, 30, 30, 6, 29, 37, 15, 29, 37, 22, 37, 37, 12,
175 12, 11, 22, 22, 37, 22, 15, 15, 11, 8, 14, 37, 14, 8, 2, 31,
176 35, 32, 32, 33, 35, 35, 33, 33, 35, 23, 23, 23, 2, 32, 26, 38,
177 38, 38, 30, 37, 12, 15, 12, 7, 15, 12, 37, 0, 0, 29, 29, 12,
178 18, 11, 37, 13, 37, 3, 37, 28, 11, 10, 10, 37, 10, 11, 29, 31,
179 37, 14, 37, 4, 4, 29, 6, 31, 2, 12, 12, 27, 25, 37, 2, 11,
180 2, 24, 31, 35, 33, 34, 0, 32, 29, 9, 1, 21, 19, 20, 16, 2,
181 21, 21, 17, 2, 23, 2, 2, 35, 32, 2, 20, 35, 34, 32, 32, 29,
182 2, 29, 29, 32, 32, 35, 35, 34, 34, 34, 38, 39, 39, 26, 9, 39,
183 27, 39, 0, 37, 0, 27, 27, 0, 0, 4, 4, 0, 41, 40, 5, 37,
184 31, 12, 2, 23,
185];
186
187#[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast)]
188#[inline(always)]
189fn _hb_indic_b4 (a: &[u8], i: usize) -> u8
190{
191 (a[i>>1]>>((i&1)<<2))&15
192}
193#[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)]
194#[inline]
195pub(crate) fn _hb_indic_get_categories_index (u: usize) -> u8
196{
197 if u<71396usize { (_hb_indic_u8[996usize+(((_hb_indic_u8[488usize+((((_hb_indic_u8[186usize+((((_hb_indic_u8[70usize+((((_hb_indic_b4(&_hb_indic_u8,(((((((((u)>>1))>>2))>>3))>>3) as usize) as usize)) as usize)<<3) as usize+((((((((u)>>1))>>2))>>3))&7) as usize) as usize]) as usize)<<3) as usize+((((((u)>>1))>>2))&7) as usize) as usize]) as usize)<<2) as usize+((((u)>>1))&3) as usize) as usize]) as usize) as usize+((u)&1) as usize) as usize]) as u8 } else { 37 }
199}
200
201#[inline]
202pub(crate) fn get_categories (u: u32) -> (u8, u8)
203{
204 let v = _hb_indic_values[_hb_indic_get_categories_index (u as usize) as usize];
205 ((v & 0xFF) as u8, (v >> 8) as u8)
206}
207
208