Skip to main content

rust_icu_sys/bindgen/
lib_78.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub type wchar_t = ::std::os::raw::c_int;
4pub type __uint16_t = ::std::os::raw::c_ushort;
5pub type __uint_least16_t = __uint16_t;
6pub type char16_t = __uint_least16_t;
7pub type UBool = i8;
8pub type UChar = char16_t;
9pub type UChar32 = i32;
10pub type UVersionInfo = [u8; 4usize];
11unsafe extern "C" {
12    pub fn u_versionFromString_78(
13        versionArray: *mut u8,
14        versionString: *const ::std::os::raw::c_char,
15    );
16}
17unsafe extern "C" {
18    pub fn u_versionFromUString_78(versionArray: *mut u8, versionString: *const UChar);
19}
20unsafe extern "C" {
21    pub fn u_versionToString_78(
22        versionArray: *const u8,
23        versionString: *mut ::std::os::raw::c_char,
24    );
25}
26unsafe extern "C" {
27    pub fn u_getVersion_78(versionArray: *mut u8);
28}
29pub type UDate = f64;
30impl UErrorCode {
31    pub const U_ERROR_WARNING_START: UErrorCode = UErrorCode::U_USING_FALLBACK_WARNING;
32}
33impl UErrorCode {
34    pub const U_PARSE_ERROR_START: UErrorCode = UErrorCode::U_BAD_VARIABLE_DEFINITION;
35}
36impl UErrorCode {
37    pub const U_FMT_PARSE_ERROR_START: UErrorCode = UErrorCode::U_UNEXPECTED_TOKEN;
38}
39impl UErrorCode {
40    pub const U_MULTIPLE_DECIMAL_SEPERATORS: UErrorCode = UErrorCode::U_MULTIPLE_DECIMAL_SEPARATORS;
41}
42impl UErrorCode {
43    pub const U_BRK_ERROR_START: UErrorCode = UErrorCode::U_BRK_INTERNAL_ERROR;
44}
45impl UErrorCode {
46    pub const U_REGEX_ERROR_START: UErrorCode = UErrorCode::U_REGEX_INTERNAL_ERROR;
47}
48impl UErrorCode {
49    pub const U_IDNA_ERROR_START: UErrorCode = UErrorCode::U_IDNA_PROHIBITED_ERROR;
50}
51impl UErrorCode {
52    pub const U_STRINGPREP_PROHIBITED_ERROR: UErrorCode = UErrorCode::U_IDNA_PROHIBITED_ERROR;
53}
54impl UErrorCode {
55    pub const U_STRINGPREP_UNASSIGNED_ERROR: UErrorCode = UErrorCode::U_IDNA_UNASSIGNED_ERROR;
56}
57impl UErrorCode {
58    pub const U_STRINGPREP_CHECK_BIDI_ERROR: UErrorCode = UErrorCode::U_IDNA_CHECK_BIDI_ERROR;
59}
60impl UErrorCode {
61    pub const U_PLUGIN_TOO_HIGH: UErrorCode = UErrorCode::U_PLUGIN_ERROR_START;
62}
63impl UErrorCode {
64    pub const U_ERROR_LIMIT: UErrorCode = UErrorCode::U_PLUGIN_ERROR_LIMIT;
65}
66#[repr(i32)]
67#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
68pub enum UErrorCode {
69    U_USING_FALLBACK_WARNING = -128,
70    U_USING_DEFAULT_WARNING = -127,
71    U_SAFECLONE_ALLOCATED_WARNING = -126,
72    U_STATE_OLD_WARNING = -125,
73    U_STRING_NOT_TERMINATED_WARNING = -124,
74    U_SORT_KEY_TOO_SHORT_WARNING = -123,
75    U_AMBIGUOUS_ALIAS_WARNING = -122,
76    U_DIFFERENT_UCA_VERSION = -121,
77    U_PLUGIN_CHANGED_LEVEL_WARNING = -120,
78    U_ERROR_WARNING_LIMIT = -119,
79    U_ZERO_ERROR = 0,
80    U_ILLEGAL_ARGUMENT_ERROR = 1,
81    U_MISSING_RESOURCE_ERROR = 2,
82    U_INVALID_FORMAT_ERROR = 3,
83    U_FILE_ACCESS_ERROR = 4,
84    U_INTERNAL_PROGRAM_ERROR = 5,
85    U_MESSAGE_PARSE_ERROR = 6,
86    U_MEMORY_ALLOCATION_ERROR = 7,
87    U_INDEX_OUTOFBOUNDS_ERROR = 8,
88    U_PARSE_ERROR = 9,
89    U_INVALID_CHAR_FOUND = 10,
90    U_TRUNCATED_CHAR_FOUND = 11,
91    U_ILLEGAL_CHAR_FOUND = 12,
92    U_INVALID_TABLE_FORMAT = 13,
93    U_INVALID_TABLE_FILE = 14,
94    U_BUFFER_OVERFLOW_ERROR = 15,
95    U_UNSUPPORTED_ERROR = 16,
96    U_RESOURCE_TYPE_MISMATCH = 17,
97    U_ILLEGAL_ESCAPE_SEQUENCE = 18,
98    U_UNSUPPORTED_ESCAPE_SEQUENCE = 19,
99    U_NO_SPACE_AVAILABLE = 20,
100    U_CE_NOT_FOUND_ERROR = 21,
101    U_PRIMARY_TOO_LONG_ERROR = 22,
102    U_STATE_TOO_OLD_ERROR = 23,
103    U_TOO_MANY_ALIASES_ERROR = 24,
104    U_ENUM_OUT_OF_SYNC_ERROR = 25,
105    U_INVARIANT_CONVERSION_ERROR = 26,
106    U_INVALID_STATE_ERROR = 27,
107    U_COLLATOR_VERSION_MISMATCH = 28,
108    U_USELESS_COLLATOR_ERROR = 29,
109    U_NO_WRITE_PERMISSION = 30,
110    U_INPUT_TOO_LONG_ERROR = 31,
111    U_STANDARD_ERROR_LIMIT = 32,
112    U_BAD_VARIABLE_DEFINITION = 65536,
113    U_MALFORMED_RULE = 65537,
114    U_MALFORMED_SET = 65538,
115    U_MALFORMED_SYMBOL_REFERENCE = 65539,
116    U_MALFORMED_UNICODE_ESCAPE = 65540,
117    U_MALFORMED_VARIABLE_DEFINITION = 65541,
118    U_MALFORMED_VARIABLE_REFERENCE = 65542,
119    U_MISMATCHED_SEGMENT_DELIMITERS = 65543,
120    U_MISPLACED_ANCHOR_START = 65544,
121    U_MISPLACED_CURSOR_OFFSET = 65545,
122    U_MISPLACED_QUANTIFIER = 65546,
123    U_MISSING_OPERATOR = 65547,
124    U_MISSING_SEGMENT_CLOSE = 65548,
125    U_MULTIPLE_ANTE_CONTEXTS = 65549,
126    U_MULTIPLE_CURSORS = 65550,
127    U_MULTIPLE_POST_CONTEXTS = 65551,
128    U_TRAILING_BACKSLASH = 65552,
129    U_UNDEFINED_SEGMENT_REFERENCE = 65553,
130    U_UNDEFINED_VARIABLE = 65554,
131    U_UNQUOTED_SPECIAL = 65555,
132    U_UNTERMINATED_QUOTE = 65556,
133    U_RULE_MASK_ERROR = 65557,
134    U_MISPLACED_COMPOUND_FILTER = 65558,
135    U_MULTIPLE_COMPOUND_FILTERS = 65559,
136    U_INVALID_RBT_SYNTAX = 65560,
137    U_INVALID_PROPERTY_PATTERN = 65561,
138    U_MALFORMED_PRAGMA = 65562,
139    U_UNCLOSED_SEGMENT = 65563,
140    U_ILLEGAL_CHAR_IN_SEGMENT = 65564,
141    U_VARIABLE_RANGE_EXHAUSTED = 65565,
142    U_VARIABLE_RANGE_OVERLAP = 65566,
143    U_ILLEGAL_CHARACTER = 65567,
144    U_INTERNAL_TRANSLITERATOR_ERROR = 65568,
145    U_INVALID_ID = 65569,
146    U_INVALID_FUNCTION = 65570,
147    U_PARSE_ERROR_LIMIT = 65571,
148    U_UNEXPECTED_TOKEN = 65792,
149    U_MULTIPLE_DECIMAL_SEPARATORS = 65793,
150    U_MULTIPLE_EXPONENTIAL_SYMBOLS = 65794,
151    U_MALFORMED_EXPONENTIAL_PATTERN = 65795,
152    U_MULTIPLE_PERCENT_SYMBOLS = 65796,
153    U_MULTIPLE_PERMILL_SYMBOLS = 65797,
154    U_MULTIPLE_PAD_SPECIFIERS = 65798,
155    U_PATTERN_SYNTAX_ERROR = 65799,
156    U_ILLEGAL_PAD_POSITION = 65800,
157    U_UNMATCHED_BRACES = 65801,
158    U_UNSUPPORTED_PROPERTY = 65802,
159    U_UNSUPPORTED_ATTRIBUTE = 65803,
160    U_ARGUMENT_TYPE_MISMATCH = 65804,
161    U_DUPLICATE_KEYWORD = 65805,
162    U_UNDEFINED_KEYWORD = 65806,
163    U_DEFAULT_KEYWORD_MISSING = 65807,
164    U_DECIMAL_NUMBER_SYNTAX_ERROR = 65808,
165    U_FORMAT_INEXACT_ERROR = 65809,
166    U_NUMBER_ARG_OUTOFBOUNDS_ERROR = 65810,
167    U_NUMBER_SKELETON_SYNTAX_ERROR = 65811,
168    U_MF_UNRESOLVED_VARIABLE_ERROR = 65812,
169    U_MF_SYNTAX_ERROR = 65813,
170    U_MF_UNKNOWN_FUNCTION_ERROR = 65814,
171    U_MF_VARIANT_KEY_MISMATCH_ERROR = 65815,
172    U_MF_FORMATTING_ERROR = 65816,
173    U_MF_NONEXHAUSTIVE_PATTERN_ERROR = 65817,
174    U_MF_DUPLICATE_OPTION_NAME_ERROR = 65818,
175    U_MF_SELECTOR_ERROR = 65819,
176    U_MF_MISSING_SELECTOR_ANNOTATION_ERROR = 65820,
177    U_MF_DUPLICATE_DECLARATION_ERROR = 65821,
178    U_MF_OPERAND_MISMATCH_ERROR = 65822,
179    U_MF_DUPLICATE_VARIANT_ERROR = 65823,
180    U_MF_BAD_OPTION = 65824,
181    U_FMT_PARSE_ERROR_LIMIT = 65825,
182    U_BRK_INTERNAL_ERROR = 66048,
183    U_BRK_HEX_DIGITS_EXPECTED = 66049,
184    U_BRK_SEMICOLON_EXPECTED = 66050,
185    U_BRK_RULE_SYNTAX = 66051,
186    U_BRK_UNCLOSED_SET = 66052,
187    U_BRK_ASSIGN_ERROR = 66053,
188    U_BRK_VARIABLE_REDFINITION = 66054,
189    U_BRK_MISMATCHED_PAREN = 66055,
190    U_BRK_NEW_LINE_IN_QUOTED_STRING = 66056,
191    U_BRK_UNDEFINED_VARIABLE = 66057,
192    U_BRK_INIT_ERROR = 66058,
193    U_BRK_RULE_EMPTY_SET = 66059,
194    U_BRK_UNRECOGNIZED_OPTION = 66060,
195    U_BRK_MALFORMED_RULE_TAG = 66061,
196    U_BRK_ERROR_LIMIT = 66062,
197    U_REGEX_INTERNAL_ERROR = 66304,
198    U_REGEX_RULE_SYNTAX = 66305,
199    U_REGEX_INVALID_STATE = 66306,
200    U_REGEX_BAD_ESCAPE_SEQUENCE = 66307,
201    U_REGEX_PROPERTY_SYNTAX = 66308,
202    U_REGEX_UNIMPLEMENTED = 66309,
203    U_REGEX_MISMATCHED_PAREN = 66310,
204    U_REGEX_NUMBER_TOO_BIG = 66311,
205    U_REGEX_BAD_INTERVAL = 66312,
206    U_REGEX_MAX_LT_MIN = 66313,
207    U_REGEX_INVALID_BACK_REF = 66314,
208    U_REGEX_INVALID_FLAG = 66315,
209    U_REGEX_LOOK_BEHIND_LIMIT = 66316,
210    U_REGEX_SET_CONTAINS_STRING = 66317,
211    U_REGEX_OCTAL_TOO_BIG = 66318,
212    U_REGEX_MISSING_CLOSE_BRACKET = 66319,
213    U_REGEX_INVALID_RANGE = 66320,
214    U_REGEX_STACK_OVERFLOW = 66321,
215    U_REGEX_TIME_OUT = 66322,
216    U_REGEX_STOPPED_BY_CALLER = 66323,
217    U_REGEX_PATTERN_TOO_BIG = 66324,
218    U_REGEX_INVALID_CAPTURE_GROUP_NAME = 66325,
219    U_REGEX_ERROR_LIMIT = 66326,
220    U_IDNA_PROHIBITED_ERROR = 66560,
221    U_IDNA_UNASSIGNED_ERROR = 66561,
222    U_IDNA_CHECK_BIDI_ERROR = 66562,
223    U_IDNA_STD3_ASCII_RULES_ERROR = 66563,
224    U_IDNA_ACE_PREFIX_ERROR = 66564,
225    U_IDNA_VERIFICATION_ERROR = 66565,
226    U_IDNA_LABEL_TOO_LONG_ERROR = 66566,
227    U_IDNA_ZERO_LENGTH_LABEL_ERROR = 66567,
228    U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR = 66568,
229    U_IDNA_ERROR_LIMIT = 66569,
230    U_PLUGIN_ERROR_START = 66816,
231    U_PLUGIN_DIDNT_SET_LEVEL = 66817,
232    U_PLUGIN_ERROR_LIMIT = 66818,
233}
234unsafe extern "C" {
235    pub fn u_errorName_78(code: UErrorCode) -> *const ::std::os::raw::c_char;
236}
237#[repr(C)]
238#[derive(Debug, Copy, Clone)]
239pub struct UEnumeration {
240    _unused: [u8; 0],
241}
242unsafe extern "C" {
243    pub fn uenum_close_78(en: *mut UEnumeration);
244}
245unsafe extern "C" {
246    pub fn uenum_count_78(en: *mut UEnumeration, status: *mut UErrorCode) -> i32;
247}
248unsafe extern "C" {
249    pub fn uenum_unext_78(
250        en: *mut UEnumeration,
251        resultLength: *mut i32,
252        status: *mut UErrorCode,
253    ) -> *const UChar;
254}
255unsafe extern "C" {
256    pub fn uenum_next_78(
257        en: *mut UEnumeration,
258        resultLength: *mut i32,
259        status: *mut UErrorCode,
260    ) -> *const ::std::os::raw::c_char;
261}
262unsafe extern "C" {
263    pub fn uenum_reset_78(en: *mut UEnumeration, status: *mut UErrorCode);
264}
265unsafe extern "C" {
266    pub fn uenum_openUCharStringsEnumeration_78(
267        strings: *const *const UChar,
268        count: i32,
269        ec: *mut UErrorCode,
270    ) -> *mut UEnumeration;
271}
272unsafe extern "C" {
273    pub fn uenum_openCharStringsEnumeration_78(
274        strings: *const *const ::std::os::raw::c_char,
275        count: i32,
276        ec: *mut UErrorCode,
277    ) -> *mut UEnumeration;
278}
279#[repr(u32)]
280#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
281pub enum ULocDataLocaleType {
282    ULOC_ACTUAL_LOCALE = 0,
283    ULOC_VALID_LOCALE = 1,
284    ULOC_REQUESTED_LOCALE = 2,
285    ULOC_DATA_LOCALE_TYPE_LIMIT = 3,
286}
287unsafe extern "C" {
288    pub fn uloc_getDefault_78() -> *const ::std::os::raw::c_char;
289}
290unsafe extern "C" {
291    pub fn uloc_setDefault_78(localeID: *const ::std::os::raw::c_char, status: *mut UErrorCode);
292}
293unsafe extern "C" {
294    pub fn uloc_getLanguage_78(
295        localeID: *const ::std::os::raw::c_char,
296        language: *mut ::std::os::raw::c_char,
297        languageCapacity: i32,
298        err: *mut UErrorCode,
299    ) -> i32;
300}
301unsafe extern "C" {
302    pub fn uloc_getScript_78(
303        localeID: *const ::std::os::raw::c_char,
304        script: *mut ::std::os::raw::c_char,
305        scriptCapacity: i32,
306        err: *mut UErrorCode,
307    ) -> i32;
308}
309unsafe extern "C" {
310    pub fn uloc_getCountry_78(
311        localeID: *const ::std::os::raw::c_char,
312        country: *mut ::std::os::raw::c_char,
313        countryCapacity: i32,
314        err: *mut UErrorCode,
315    ) -> i32;
316}
317unsafe extern "C" {
318    pub fn uloc_getVariant_78(
319        localeID: *const ::std::os::raw::c_char,
320        variant: *mut ::std::os::raw::c_char,
321        variantCapacity: i32,
322        err: *mut UErrorCode,
323    ) -> i32;
324}
325unsafe extern "C" {
326    pub fn uloc_getName_78(
327        localeID: *const ::std::os::raw::c_char,
328        name: *mut ::std::os::raw::c_char,
329        nameCapacity: i32,
330        err: *mut UErrorCode,
331    ) -> i32;
332}
333unsafe extern "C" {
334    pub fn uloc_canonicalize_78(
335        localeID: *const ::std::os::raw::c_char,
336        name: *mut ::std::os::raw::c_char,
337        nameCapacity: i32,
338        err: *mut UErrorCode,
339    ) -> i32;
340}
341unsafe extern "C" {
342    pub fn uloc_getISO3Language_78(
343        localeID: *const ::std::os::raw::c_char,
344    ) -> *const ::std::os::raw::c_char;
345}
346unsafe extern "C" {
347    pub fn uloc_getISO3Country_78(
348        localeID: *const ::std::os::raw::c_char,
349    ) -> *const ::std::os::raw::c_char;
350}
351unsafe extern "C" {
352    pub fn uloc_getLCID_78(localeID: *const ::std::os::raw::c_char) -> u32;
353}
354unsafe extern "C" {
355    pub fn uloc_getDisplayLanguage_78(
356        locale: *const ::std::os::raw::c_char,
357        displayLocale: *const ::std::os::raw::c_char,
358        language: *mut UChar,
359        languageCapacity: i32,
360        status: *mut UErrorCode,
361    ) -> i32;
362}
363unsafe extern "C" {
364    pub fn uloc_getDisplayScript_78(
365        locale: *const ::std::os::raw::c_char,
366        displayLocale: *const ::std::os::raw::c_char,
367        script: *mut UChar,
368        scriptCapacity: i32,
369        status: *mut UErrorCode,
370    ) -> i32;
371}
372unsafe extern "C" {
373    pub fn uloc_getDisplayCountry_78(
374        locale: *const ::std::os::raw::c_char,
375        displayLocale: *const ::std::os::raw::c_char,
376        country: *mut UChar,
377        countryCapacity: i32,
378        status: *mut UErrorCode,
379    ) -> i32;
380}
381unsafe extern "C" {
382    pub fn uloc_getDisplayVariant_78(
383        locale: *const ::std::os::raw::c_char,
384        displayLocale: *const ::std::os::raw::c_char,
385        variant: *mut UChar,
386        variantCapacity: i32,
387        status: *mut UErrorCode,
388    ) -> i32;
389}
390unsafe extern "C" {
391    pub fn uloc_getDisplayKeyword_78(
392        keyword: *const ::std::os::raw::c_char,
393        displayLocale: *const ::std::os::raw::c_char,
394        dest: *mut UChar,
395        destCapacity: i32,
396        status: *mut UErrorCode,
397    ) -> i32;
398}
399unsafe extern "C" {
400    pub fn uloc_getDisplayKeywordValue_78(
401        locale: *const ::std::os::raw::c_char,
402        keyword: *const ::std::os::raw::c_char,
403        displayLocale: *const ::std::os::raw::c_char,
404        dest: *mut UChar,
405        destCapacity: i32,
406        status: *mut UErrorCode,
407    ) -> i32;
408}
409unsafe extern "C" {
410    pub fn uloc_getDisplayName_78(
411        localeID: *const ::std::os::raw::c_char,
412        inLocaleID: *const ::std::os::raw::c_char,
413        result: *mut UChar,
414        maxResultSize: i32,
415        err: *mut UErrorCode,
416    ) -> i32;
417}
418unsafe extern "C" {
419    pub fn uloc_getAvailable_78(n: i32) -> *const ::std::os::raw::c_char;
420}
421unsafe extern "C" {
422    pub fn uloc_countAvailable_78() -> i32;
423}
424#[repr(u32)]
425#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
426pub enum ULocAvailableType {
427    ULOC_AVAILABLE_DEFAULT = 0,
428    ULOC_AVAILABLE_ONLY_LEGACY_ALIASES = 1,
429    ULOC_AVAILABLE_WITH_LEGACY_ALIASES = 2,
430    ULOC_AVAILABLE_COUNT = 3,
431}
432unsafe extern "C" {
433    pub fn uloc_openAvailableByType_78(
434        type_: ULocAvailableType,
435        status: *mut UErrorCode,
436    ) -> *mut UEnumeration;
437}
438unsafe extern "C" {
439    pub fn uloc_getISOLanguages_78() -> *const *const ::std::os::raw::c_char;
440}
441unsafe extern "C" {
442    pub fn uloc_getISOCountries_78() -> *const *const ::std::os::raw::c_char;
443}
444unsafe extern "C" {
445    pub fn uloc_getParent_78(
446        localeID: *const ::std::os::raw::c_char,
447        parent: *mut ::std::os::raw::c_char,
448        parentCapacity: i32,
449        err: *mut UErrorCode,
450    ) -> i32;
451}
452unsafe extern "C" {
453    pub fn uloc_getBaseName_78(
454        localeID: *const ::std::os::raw::c_char,
455        name: *mut ::std::os::raw::c_char,
456        nameCapacity: i32,
457        err: *mut UErrorCode,
458    ) -> i32;
459}
460unsafe extern "C" {
461    pub fn uloc_openKeywords_78(
462        localeID: *const ::std::os::raw::c_char,
463        status: *mut UErrorCode,
464    ) -> *mut UEnumeration;
465}
466unsafe extern "C" {
467    pub fn uloc_getKeywordValue_78(
468        localeID: *const ::std::os::raw::c_char,
469        keywordName: *const ::std::os::raw::c_char,
470        buffer: *mut ::std::os::raw::c_char,
471        bufferCapacity: i32,
472        status: *mut UErrorCode,
473    ) -> i32;
474}
475unsafe extern "C" {
476    pub fn uloc_setKeywordValue_78(
477        keywordName: *const ::std::os::raw::c_char,
478        keywordValue: *const ::std::os::raw::c_char,
479        buffer: *mut ::std::os::raw::c_char,
480        bufferCapacity: i32,
481        status: *mut UErrorCode,
482    ) -> i32;
483}
484unsafe extern "C" {
485    pub fn uloc_isRightToLeft_78(locale: *const ::std::os::raw::c_char) -> UBool;
486}
487#[repr(u32)]
488#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
489pub enum ULayoutType {
490    ULOC_LAYOUT_LTR = 0,
491    ULOC_LAYOUT_RTL = 1,
492    ULOC_LAYOUT_TTB = 2,
493    ULOC_LAYOUT_BTT = 3,
494    ULOC_LAYOUT_UNKNOWN = 4,
495}
496unsafe extern "C" {
497    pub fn uloc_getCharacterOrientation_78(
498        localeId: *const ::std::os::raw::c_char,
499        status: *mut UErrorCode,
500    ) -> ULayoutType;
501}
502unsafe extern "C" {
503    pub fn uloc_getLineOrientation_78(
504        localeId: *const ::std::os::raw::c_char,
505        status: *mut UErrorCode,
506    ) -> ULayoutType;
507}
508#[repr(u32)]
509#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
510pub enum UAcceptResult {
511    ULOC_ACCEPT_FAILED = 0,
512    ULOC_ACCEPT_VALID = 1,
513    ULOC_ACCEPT_FALLBACK = 2,
514}
515unsafe extern "C" {
516    pub fn uloc_acceptLanguageFromHTTP_78(
517        result: *mut ::std::os::raw::c_char,
518        resultAvailable: i32,
519        outResult: *mut UAcceptResult,
520        httpAcceptLanguage: *const ::std::os::raw::c_char,
521        availableLocales: *mut UEnumeration,
522        status: *mut UErrorCode,
523    ) -> i32;
524}
525unsafe extern "C" {
526    pub fn uloc_acceptLanguage_78(
527        result: *mut ::std::os::raw::c_char,
528        resultAvailable: i32,
529        outResult: *mut UAcceptResult,
530        acceptList: *mut *const ::std::os::raw::c_char,
531        acceptListCount: i32,
532        availableLocales: *mut UEnumeration,
533        status: *mut UErrorCode,
534    ) -> i32;
535}
536unsafe extern "C" {
537    pub fn uloc_getLocaleForLCID_78(
538        hostID: u32,
539        locale: *mut ::std::os::raw::c_char,
540        localeCapacity: i32,
541        status: *mut UErrorCode,
542    ) -> i32;
543}
544unsafe extern "C" {
545    pub fn uloc_addLikelySubtags_78(
546        localeID: *const ::std::os::raw::c_char,
547        maximizedLocaleID: *mut ::std::os::raw::c_char,
548        maximizedLocaleIDCapacity: i32,
549        err: *mut UErrorCode,
550    ) -> i32;
551}
552unsafe extern "C" {
553    pub fn uloc_minimizeSubtags_78(
554        localeID: *const ::std::os::raw::c_char,
555        minimizedLocaleID: *mut ::std::os::raw::c_char,
556        minimizedLocaleIDCapacity: i32,
557        err: *mut UErrorCode,
558    ) -> i32;
559}
560unsafe extern "C" {
561    pub fn uloc_forLanguageTag_78(
562        langtag: *const ::std::os::raw::c_char,
563        localeID: *mut ::std::os::raw::c_char,
564        localeIDCapacity: i32,
565        parsedLength: *mut i32,
566        err: *mut UErrorCode,
567    ) -> i32;
568}
569unsafe extern "C" {
570    pub fn uloc_toLanguageTag_78(
571        localeID: *const ::std::os::raw::c_char,
572        langtag: *mut ::std::os::raw::c_char,
573        langtagCapacity: i32,
574        strict: UBool,
575        err: *mut UErrorCode,
576    ) -> i32;
577}
578unsafe extern "C" {
579    pub fn uloc_toUnicodeLocaleKey_78(
580        keyword: *const ::std::os::raw::c_char,
581    ) -> *const ::std::os::raw::c_char;
582}
583unsafe extern "C" {
584    pub fn uloc_toUnicodeLocaleType_78(
585        keyword: *const ::std::os::raw::c_char,
586        value: *const ::std::os::raw::c_char,
587    ) -> *const ::std::os::raw::c_char;
588}
589unsafe extern "C" {
590    pub fn uloc_toLegacyKey_78(
591        keyword: *const ::std::os::raw::c_char,
592    ) -> *const ::std::os::raw::c_char;
593}
594unsafe extern "C" {
595    pub fn uloc_toLegacyType_78(
596        keyword: *const ::std::os::raw::c_char,
597        value: *const ::std::os::raw::c_char,
598    ) -> *const ::std::os::raw::c_char;
599}
600#[repr(C)]
601#[derive(Debug, Copy, Clone)]
602pub struct UCPMap {
603    _unused: [u8; 0],
604}
605#[repr(u32)]
606#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
607pub enum UCPMapRangeOption {
608    UCPMAP_RANGE_NORMAL = 0,
609    UCPMAP_RANGE_FIXED_LEAD_SURROGATES = 1,
610    UCPMAP_RANGE_FIXED_ALL_SURROGATES = 2,
611}
612unsafe extern "C" {
613    pub fn ucpmap_get_78(map: *const UCPMap, c: UChar32) -> u32;
614}
615pub type UCPMapValueFilter = ::std::option::Option<
616    unsafe extern "C" fn(context: *const ::std::os::raw::c_void, value: u32) -> u32,
617>;
618unsafe extern "C" {
619    pub fn ucpmap_getRange_78(
620        map: *const UCPMap,
621        start: UChar32,
622        option: UCPMapRangeOption,
623        surrogateValue: u32,
624        filter: UCPMapValueFilter,
625        context: *const ::std::os::raw::c_void,
626        pValue: *mut u32,
627    ) -> UChar32;
628}
629#[repr(C)]
630#[derive(Debug, Copy, Clone)]
631pub struct USet {
632    _unused: [u8; 0],
633}
634impl UProperty {
635    pub const UCHAR_BINARY_START: UProperty = UProperty::UCHAR_ALPHABETIC;
636}
637impl UProperty {
638    pub const UCHAR_INT_START: UProperty = UProperty::UCHAR_BIDI_CLASS;
639}
640impl UProperty {
641    pub const UCHAR_MASK_START: UProperty = UProperty::UCHAR_GENERAL_CATEGORY_MASK;
642}
643impl UProperty {
644    pub const UCHAR_DOUBLE_START: UProperty = UProperty::UCHAR_NUMERIC_VALUE;
645}
646impl UProperty {
647    pub const UCHAR_STRING_START: UProperty = UProperty::UCHAR_AGE;
648}
649impl UProperty {
650    pub const UCHAR_OTHER_PROPERTY_START: UProperty = UProperty::UCHAR_SCRIPT_EXTENSIONS;
651}
652#[repr(i32)]
653#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
654pub enum UProperty {
655    UCHAR_ALPHABETIC = 0,
656    UCHAR_ASCII_HEX_DIGIT = 1,
657    UCHAR_BIDI_CONTROL = 2,
658    UCHAR_BIDI_MIRRORED = 3,
659    UCHAR_DASH = 4,
660    UCHAR_DEFAULT_IGNORABLE_CODE_POINT = 5,
661    UCHAR_DEPRECATED = 6,
662    UCHAR_DIACRITIC = 7,
663    UCHAR_EXTENDER = 8,
664    UCHAR_FULL_COMPOSITION_EXCLUSION = 9,
665    UCHAR_GRAPHEME_BASE = 10,
666    UCHAR_GRAPHEME_EXTEND = 11,
667    UCHAR_GRAPHEME_LINK = 12,
668    UCHAR_HEX_DIGIT = 13,
669    UCHAR_HYPHEN = 14,
670    UCHAR_ID_CONTINUE = 15,
671    UCHAR_ID_START = 16,
672    UCHAR_IDEOGRAPHIC = 17,
673    UCHAR_IDS_BINARY_OPERATOR = 18,
674    UCHAR_IDS_TRINARY_OPERATOR = 19,
675    UCHAR_JOIN_CONTROL = 20,
676    UCHAR_LOGICAL_ORDER_EXCEPTION = 21,
677    UCHAR_LOWERCASE = 22,
678    UCHAR_MATH = 23,
679    UCHAR_NONCHARACTER_CODE_POINT = 24,
680    UCHAR_QUOTATION_MARK = 25,
681    UCHAR_RADICAL = 26,
682    UCHAR_SOFT_DOTTED = 27,
683    UCHAR_TERMINAL_PUNCTUATION = 28,
684    UCHAR_UNIFIED_IDEOGRAPH = 29,
685    UCHAR_UPPERCASE = 30,
686    UCHAR_WHITE_SPACE = 31,
687    UCHAR_XID_CONTINUE = 32,
688    UCHAR_XID_START = 33,
689    UCHAR_CASE_SENSITIVE = 34,
690    UCHAR_S_TERM = 35,
691    UCHAR_VARIATION_SELECTOR = 36,
692    UCHAR_NFD_INERT = 37,
693    UCHAR_NFKD_INERT = 38,
694    UCHAR_NFC_INERT = 39,
695    UCHAR_NFKC_INERT = 40,
696    UCHAR_SEGMENT_STARTER = 41,
697    UCHAR_PATTERN_SYNTAX = 42,
698    UCHAR_PATTERN_WHITE_SPACE = 43,
699    UCHAR_POSIX_ALNUM = 44,
700    UCHAR_POSIX_BLANK = 45,
701    UCHAR_POSIX_GRAPH = 46,
702    UCHAR_POSIX_PRINT = 47,
703    UCHAR_POSIX_XDIGIT = 48,
704    UCHAR_CASED = 49,
705    UCHAR_CASE_IGNORABLE = 50,
706    UCHAR_CHANGES_WHEN_LOWERCASED = 51,
707    UCHAR_CHANGES_WHEN_UPPERCASED = 52,
708    UCHAR_CHANGES_WHEN_TITLECASED = 53,
709    UCHAR_CHANGES_WHEN_CASEFOLDED = 54,
710    UCHAR_CHANGES_WHEN_CASEMAPPED = 55,
711    UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED = 56,
712    UCHAR_EMOJI = 57,
713    UCHAR_EMOJI_PRESENTATION = 58,
714    UCHAR_EMOJI_MODIFIER = 59,
715    UCHAR_EMOJI_MODIFIER_BASE = 60,
716    UCHAR_EMOJI_COMPONENT = 61,
717    UCHAR_REGIONAL_INDICATOR = 62,
718    UCHAR_PREPENDED_CONCATENATION_MARK = 63,
719    UCHAR_EXTENDED_PICTOGRAPHIC = 64,
720    UCHAR_BASIC_EMOJI = 65,
721    UCHAR_EMOJI_KEYCAP_SEQUENCE = 66,
722    UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE = 67,
723    UCHAR_RGI_EMOJI_FLAG_SEQUENCE = 68,
724    UCHAR_RGI_EMOJI_TAG_SEQUENCE = 69,
725    UCHAR_RGI_EMOJI_ZWJ_SEQUENCE = 70,
726    UCHAR_RGI_EMOJI = 71,
727    UCHAR_IDS_UNARY_OPERATOR = 72,
728    UCHAR_ID_COMPAT_MATH_START = 73,
729    UCHAR_ID_COMPAT_MATH_CONTINUE = 74,
730    UCHAR_MODIFIER_COMBINING_MARK = 75,
731    UCHAR_BINARY_LIMIT = 76,
732    UCHAR_BIDI_CLASS = 4096,
733    UCHAR_BLOCK = 4097,
734    UCHAR_CANONICAL_COMBINING_CLASS = 4098,
735    UCHAR_DECOMPOSITION_TYPE = 4099,
736    UCHAR_EAST_ASIAN_WIDTH = 4100,
737    UCHAR_GENERAL_CATEGORY = 4101,
738    UCHAR_JOINING_GROUP = 4102,
739    UCHAR_JOINING_TYPE = 4103,
740    UCHAR_LINE_BREAK = 4104,
741    UCHAR_NUMERIC_TYPE = 4105,
742    UCHAR_SCRIPT = 4106,
743    UCHAR_HANGUL_SYLLABLE_TYPE = 4107,
744    UCHAR_NFD_QUICK_CHECK = 4108,
745    UCHAR_NFKD_QUICK_CHECK = 4109,
746    UCHAR_NFC_QUICK_CHECK = 4110,
747    UCHAR_NFKC_QUICK_CHECK = 4111,
748    UCHAR_LEAD_CANONICAL_COMBINING_CLASS = 4112,
749    UCHAR_TRAIL_CANONICAL_COMBINING_CLASS = 4113,
750    UCHAR_GRAPHEME_CLUSTER_BREAK = 4114,
751    UCHAR_SENTENCE_BREAK = 4115,
752    UCHAR_WORD_BREAK = 4116,
753    UCHAR_BIDI_PAIRED_BRACKET_TYPE = 4117,
754    UCHAR_INDIC_POSITIONAL_CATEGORY = 4118,
755    UCHAR_INDIC_SYLLABIC_CATEGORY = 4119,
756    UCHAR_VERTICAL_ORIENTATION = 4120,
757    UCHAR_IDENTIFIER_STATUS = 4121,
758    UCHAR_INDIC_CONJUNCT_BREAK = 4122,
759    UCHAR_INT_LIMIT = 4123,
760    UCHAR_GENERAL_CATEGORY_MASK = 8192,
761    UCHAR_MASK_LIMIT = 8193,
762    UCHAR_NUMERIC_VALUE = 12288,
763    UCHAR_DOUBLE_LIMIT = 12289,
764    UCHAR_AGE = 16384,
765    UCHAR_BIDI_MIRRORING_GLYPH = 16385,
766    UCHAR_CASE_FOLDING = 16386,
767    UCHAR_ISO_COMMENT = 16387,
768    UCHAR_LOWERCASE_MAPPING = 16388,
769    UCHAR_NAME = 16389,
770    UCHAR_SIMPLE_CASE_FOLDING = 16390,
771    UCHAR_SIMPLE_LOWERCASE_MAPPING = 16391,
772    UCHAR_SIMPLE_TITLECASE_MAPPING = 16392,
773    UCHAR_SIMPLE_UPPERCASE_MAPPING = 16393,
774    UCHAR_TITLECASE_MAPPING = 16394,
775    UCHAR_UNICODE_1_NAME = 16395,
776    UCHAR_UPPERCASE_MAPPING = 16396,
777    UCHAR_BIDI_PAIRED_BRACKET = 16397,
778    UCHAR_STRING_LIMIT = 16398,
779    UCHAR_SCRIPT_EXTENSIONS = 28672,
780    UCHAR_IDENTIFIER_TYPE = 28673,
781    UCHAR_OTHER_PROPERTY_LIMIT = 28674,
782    UCHAR_INVALID_CODE = -1,
783}
784impl UCharCategory {
785    pub const U_GENERAL_OTHER_TYPES: UCharCategory = UCharCategory::U_UNASSIGNED;
786}
787#[repr(u32)]
788#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
789pub enum UCharCategory {
790    U_UNASSIGNED = 0,
791    U_UPPERCASE_LETTER = 1,
792    U_LOWERCASE_LETTER = 2,
793    U_TITLECASE_LETTER = 3,
794    U_MODIFIER_LETTER = 4,
795    U_OTHER_LETTER = 5,
796    U_NON_SPACING_MARK = 6,
797    U_ENCLOSING_MARK = 7,
798    U_COMBINING_SPACING_MARK = 8,
799    U_DECIMAL_DIGIT_NUMBER = 9,
800    U_LETTER_NUMBER = 10,
801    U_OTHER_NUMBER = 11,
802    U_SPACE_SEPARATOR = 12,
803    U_LINE_SEPARATOR = 13,
804    U_PARAGRAPH_SEPARATOR = 14,
805    U_CONTROL_CHAR = 15,
806    U_FORMAT_CHAR = 16,
807    U_PRIVATE_USE_CHAR = 17,
808    U_SURROGATE = 18,
809    U_DASH_PUNCTUATION = 19,
810    U_START_PUNCTUATION = 20,
811    U_END_PUNCTUATION = 21,
812    U_CONNECTOR_PUNCTUATION = 22,
813    U_OTHER_PUNCTUATION = 23,
814    U_MATH_SYMBOL = 24,
815    U_CURRENCY_SYMBOL = 25,
816    U_MODIFIER_SYMBOL = 26,
817    U_OTHER_SYMBOL = 27,
818    U_INITIAL_PUNCTUATION = 28,
819    U_FINAL_PUNCTUATION = 29,
820    U_CHAR_CATEGORY_COUNT = 30,
821}
822#[repr(u32)]
823#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
824pub enum UCharDirection {
825    U_LEFT_TO_RIGHT = 0,
826    U_RIGHT_TO_LEFT = 1,
827    U_EUROPEAN_NUMBER = 2,
828    U_EUROPEAN_NUMBER_SEPARATOR = 3,
829    U_EUROPEAN_NUMBER_TERMINATOR = 4,
830    U_ARABIC_NUMBER = 5,
831    U_COMMON_NUMBER_SEPARATOR = 6,
832    U_BLOCK_SEPARATOR = 7,
833    U_SEGMENT_SEPARATOR = 8,
834    U_WHITE_SPACE_NEUTRAL = 9,
835    U_OTHER_NEUTRAL = 10,
836    U_LEFT_TO_RIGHT_EMBEDDING = 11,
837    U_LEFT_TO_RIGHT_OVERRIDE = 12,
838    U_RIGHT_TO_LEFT_ARABIC = 13,
839    U_RIGHT_TO_LEFT_EMBEDDING = 14,
840    U_RIGHT_TO_LEFT_OVERRIDE = 15,
841    U_POP_DIRECTIONAL_FORMAT = 16,
842    U_DIR_NON_SPACING_MARK = 17,
843    U_BOUNDARY_NEUTRAL = 18,
844    U_FIRST_STRONG_ISOLATE = 19,
845    U_LEFT_TO_RIGHT_ISOLATE = 20,
846    U_RIGHT_TO_LEFT_ISOLATE = 21,
847    U_POP_DIRECTIONAL_ISOLATE = 22,
848    U_CHAR_DIRECTION_COUNT = 23,
849}
850#[repr(u32)]
851#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
852pub enum UCharNameChoice {
853    U_UNICODE_CHAR_NAME = 0,
854    U_UNICODE_10_CHAR_NAME = 1,
855    U_EXTENDED_CHAR_NAME = 2,
856    U_CHAR_NAME_ALIAS = 3,
857    U_CHAR_NAME_CHOICE_COUNT = 4,
858}
859#[repr(u32)]
860#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
861pub enum UPropertyNameChoice {
862    U_SHORT_PROPERTY_NAME = 0,
863    U_LONG_PROPERTY_NAME = 1,
864    U_PROPERTY_NAME_CHOICE_COUNT = 2,
865}
866#[repr(u32)]
867#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
868pub enum UIdentifierType {
869    U_ID_TYPE_NOT_CHARACTER = 0,
870    U_ID_TYPE_DEPRECATED = 1,
871    U_ID_TYPE_DEFAULT_IGNORABLE = 2,
872    U_ID_TYPE_NOT_NFKC = 3,
873    U_ID_TYPE_NOT_XID = 4,
874    U_ID_TYPE_EXCLUSION = 5,
875    U_ID_TYPE_OBSOLETE = 6,
876    U_ID_TYPE_TECHNICAL = 7,
877    U_ID_TYPE_UNCOMMON_USE = 8,
878    U_ID_TYPE_LIMITED_USE = 9,
879    U_ID_TYPE_INCLUSION = 10,
880    U_ID_TYPE_RECOMMENDED = 11,
881}
882unsafe extern "C" {
883    pub fn u_hasBinaryProperty_78(c: UChar32, which: UProperty) -> UBool;
884}
885unsafe extern "C" {
886    pub fn u_stringHasBinaryProperty_78(s: *const UChar, length: i32, which: UProperty) -> UBool;
887}
888unsafe extern "C" {
889    pub fn u_getBinaryPropertySet_78(
890        property: UProperty,
891        pErrorCode: *mut UErrorCode,
892    ) -> *const USet;
893}
894unsafe extern "C" {
895    pub fn u_isUAlphabetic_78(c: UChar32) -> UBool;
896}
897unsafe extern "C" {
898    pub fn u_isULowercase_78(c: UChar32) -> UBool;
899}
900unsafe extern "C" {
901    pub fn u_isUUppercase_78(c: UChar32) -> UBool;
902}
903unsafe extern "C" {
904    pub fn u_isUWhiteSpace_78(c: UChar32) -> UBool;
905}
906unsafe extern "C" {
907    pub fn u_getIntPropertyValue_78(c: UChar32, which: UProperty) -> i32;
908}
909unsafe extern "C" {
910    pub fn u_getIntPropertyMinValue_78(which: UProperty) -> i32;
911}
912unsafe extern "C" {
913    pub fn u_getIntPropertyMaxValue_78(which: UProperty) -> i32;
914}
915unsafe extern "C" {
916    pub fn u_getIntPropertyMap_78(
917        property: UProperty,
918        pErrorCode: *mut UErrorCode,
919    ) -> *const UCPMap;
920}
921unsafe extern "C" {
922    pub fn u_getNumericValue_78(c: UChar32) -> f64;
923}
924unsafe extern "C" {
925    pub fn u_islower_78(c: UChar32) -> UBool;
926}
927unsafe extern "C" {
928    pub fn u_isupper_78(c: UChar32) -> UBool;
929}
930unsafe extern "C" {
931    pub fn u_istitle_78(c: UChar32) -> UBool;
932}
933unsafe extern "C" {
934    pub fn u_isdigit_78(c: UChar32) -> UBool;
935}
936unsafe extern "C" {
937    pub fn u_isalpha_78(c: UChar32) -> UBool;
938}
939unsafe extern "C" {
940    pub fn u_isalnum_78(c: UChar32) -> UBool;
941}
942unsafe extern "C" {
943    pub fn u_isxdigit_78(c: UChar32) -> UBool;
944}
945unsafe extern "C" {
946    pub fn u_ispunct_78(c: UChar32) -> UBool;
947}
948unsafe extern "C" {
949    pub fn u_isgraph_78(c: UChar32) -> UBool;
950}
951unsafe extern "C" {
952    pub fn u_isblank_78(c: UChar32) -> UBool;
953}
954unsafe extern "C" {
955    pub fn u_isdefined_78(c: UChar32) -> UBool;
956}
957unsafe extern "C" {
958    pub fn u_isspace_78(c: UChar32) -> UBool;
959}
960unsafe extern "C" {
961    pub fn u_isJavaSpaceChar_78(c: UChar32) -> UBool;
962}
963unsafe extern "C" {
964    pub fn u_isWhitespace_78(c: UChar32) -> UBool;
965}
966unsafe extern "C" {
967    pub fn u_iscntrl_78(c: UChar32) -> UBool;
968}
969unsafe extern "C" {
970    pub fn u_isISOControl_78(c: UChar32) -> UBool;
971}
972unsafe extern "C" {
973    pub fn u_isprint_78(c: UChar32) -> UBool;
974}
975unsafe extern "C" {
976    pub fn u_isbase_78(c: UChar32) -> UBool;
977}
978unsafe extern "C" {
979    pub fn u_charDirection_78(c: UChar32) -> UCharDirection;
980}
981unsafe extern "C" {
982    pub fn u_isMirrored_78(c: UChar32) -> UBool;
983}
984unsafe extern "C" {
985    pub fn u_charMirror_78(c: UChar32) -> UChar32;
986}
987unsafe extern "C" {
988    pub fn u_getBidiPairedBracket_78(c: UChar32) -> UChar32;
989}
990unsafe extern "C" {
991    pub fn u_charType_78(c: UChar32) -> i8;
992}
993pub type UCharEnumTypeRange = ::std::option::Option<
994    unsafe extern "C" fn(
995        context: *const ::std::os::raw::c_void,
996        start: UChar32,
997        limit: UChar32,
998        type_: UCharCategory,
999    ) -> UBool,
1000>;
1001unsafe extern "C" {
1002    pub fn u_enumCharTypes_78(
1003        enumRange: UCharEnumTypeRange,
1004        context: *const ::std::os::raw::c_void,
1005    );
1006}
1007unsafe extern "C" {
1008    pub fn u_getCombiningClass_78(c: UChar32) -> u8;
1009}
1010unsafe extern "C" {
1011    pub fn u_charDigitValue_78(c: UChar32) -> i32;
1012}
1013unsafe extern "C" {
1014    pub fn u_charName_78(
1015        code: UChar32,
1016        nameChoice: UCharNameChoice,
1017        buffer: *mut ::std::os::raw::c_char,
1018        bufferLength: i32,
1019        pErrorCode: *mut UErrorCode,
1020    ) -> i32;
1021}
1022unsafe extern "C" {
1023    pub fn u_getISOComment_78(
1024        c: UChar32,
1025        dest: *mut ::std::os::raw::c_char,
1026        destCapacity: i32,
1027        pErrorCode: *mut UErrorCode,
1028    ) -> i32;
1029}
1030unsafe extern "C" {
1031    pub fn u_charFromName_78(
1032        nameChoice: UCharNameChoice,
1033        name: *const ::std::os::raw::c_char,
1034        pErrorCode: *mut UErrorCode,
1035    ) -> UChar32;
1036}
1037pub type UEnumCharNamesFn = ::std::option::Option<
1038    unsafe extern "C" fn(
1039        context: *mut ::std::os::raw::c_void,
1040        code: UChar32,
1041        nameChoice: UCharNameChoice,
1042        name: *const ::std::os::raw::c_char,
1043        length: i32,
1044    ) -> UBool,
1045>;
1046unsafe extern "C" {
1047    pub fn u_enumCharNames_78(
1048        start: UChar32,
1049        limit: UChar32,
1050        fn_: UEnumCharNamesFn,
1051        context: *mut ::std::os::raw::c_void,
1052        nameChoice: UCharNameChoice,
1053        pErrorCode: *mut UErrorCode,
1054    );
1055}
1056unsafe extern "C" {
1057    pub fn u_getPropertyName_78(
1058        property: UProperty,
1059        nameChoice: UPropertyNameChoice,
1060    ) -> *const ::std::os::raw::c_char;
1061}
1062unsafe extern "C" {
1063    pub fn u_getPropertyEnum_78(alias: *const ::std::os::raw::c_char) -> UProperty;
1064}
1065unsafe extern "C" {
1066    pub fn u_getPropertyValueName_78(
1067        property: UProperty,
1068        value: i32,
1069        nameChoice: UPropertyNameChoice,
1070    ) -> *const ::std::os::raw::c_char;
1071}
1072unsafe extern "C" {
1073    pub fn u_getPropertyValueEnum_78(
1074        property: UProperty,
1075        alias: *const ::std::os::raw::c_char,
1076    ) -> i32;
1077}
1078unsafe extern "C" {
1079    pub fn u_isIDStart_78(c: UChar32) -> UBool;
1080}
1081unsafe extern "C" {
1082    pub fn u_isIDPart_78(c: UChar32) -> UBool;
1083}
1084unsafe extern "C" {
1085    pub fn u_hasIDType_78(c: UChar32, type_: UIdentifierType) -> bool;
1086}
1087unsafe extern "C" {
1088    pub fn u_getIDTypes_78(
1089        c: UChar32,
1090        types: *mut UIdentifierType,
1091        capacity: i32,
1092        pErrorCode: *mut UErrorCode,
1093    ) -> i32;
1094}
1095unsafe extern "C" {
1096    pub fn u_isIDIgnorable_78(c: UChar32) -> UBool;
1097}
1098unsafe extern "C" {
1099    pub fn u_isJavaIDStart_78(c: UChar32) -> UBool;
1100}
1101unsafe extern "C" {
1102    pub fn u_isJavaIDPart_78(c: UChar32) -> UBool;
1103}
1104unsafe extern "C" {
1105    pub fn u_tolower_78(c: UChar32) -> UChar32;
1106}
1107unsafe extern "C" {
1108    pub fn u_toupper_78(c: UChar32) -> UChar32;
1109}
1110unsafe extern "C" {
1111    pub fn u_totitle_78(c: UChar32) -> UChar32;
1112}
1113unsafe extern "C" {
1114    pub fn u_foldCase_78(c: UChar32, options: u32) -> UChar32;
1115}
1116unsafe extern "C" {
1117    pub fn u_digit_78(ch: UChar32, radix: i8) -> i32;
1118}
1119unsafe extern "C" {
1120    pub fn u_forDigit_78(digit: i32, radix: i8) -> UChar32;
1121}
1122unsafe extern "C" {
1123    pub fn u_charAge_78(c: UChar32, versionArray: *mut u8);
1124}
1125unsafe extern "C" {
1126    pub fn u_getUnicodeVersion_78(versionArray: *mut u8);
1127}
1128unsafe extern "C" {
1129    pub fn u_getFC_NFKC_Closure_78(
1130        c: UChar32,
1131        dest: *mut UChar,
1132        destCapacity: i32,
1133        pErrorCode: *mut UErrorCode,
1134    ) -> i32;
1135}
1136unsafe extern "C" {
1137    pub fn utext_close_78(ut: *mut UText) -> *mut UText;
1138}
1139unsafe extern "C" {
1140    pub fn utext_openUTF8_78(
1141        ut: *mut UText,
1142        s: *const ::std::os::raw::c_char,
1143        length: i64,
1144        status: *mut UErrorCode,
1145    ) -> *mut UText;
1146}
1147unsafe extern "C" {
1148    pub fn utext_openUChars_78(
1149        ut: *mut UText,
1150        s: *const UChar,
1151        length: i64,
1152        status: *mut UErrorCode,
1153    ) -> *mut UText;
1154}
1155unsafe extern "C" {
1156    pub fn utext_clone_78(
1157        dest: *mut UText,
1158        src: *const UText,
1159        deep: UBool,
1160        readOnly: UBool,
1161        status: *mut UErrorCode,
1162    ) -> *mut UText;
1163}
1164unsafe extern "C" {
1165    pub fn utext_equals_78(a: *const UText, b: *const UText) -> UBool;
1166}
1167unsafe extern "C" {
1168    pub fn utext_nativeLength_78(ut: *mut UText) -> i64;
1169}
1170unsafe extern "C" {
1171    pub fn utext_isLengthExpensive_78(ut: *const UText) -> UBool;
1172}
1173unsafe extern "C" {
1174    pub fn utext_char32At_78(ut: *mut UText, nativeIndex: i64) -> UChar32;
1175}
1176unsafe extern "C" {
1177    pub fn utext_current32_78(ut: *mut UText) -> UChar32;
1178}
1179unsafe extern "C" {
1180    pub fn utext_next32_78(ut: *mut UText) -> UChar32;
1181}
1182unsafe extern "C" {
1183    pub fn utext_previous32_78(ut: *mut UText) -> UChar32;
1184}
1185unsafe extern "C" {
1186    pub fn utext_next32From_78(ut: *mut UText, nativeIndex: i64) -> UChar32;
1187}
1188unsafe extern "C" {
1189    pub fn utext_previous32From_78(ut: *mut UText, nativeIndex: i64) -> UChar32;
1190}
1191unsafe extern "C" {
1192    pub fn utext_getNativeIndex_78(ut: *const UText) -> i64;
1193}
1194unsafe extern "C" {
1195    pub fn utext_setNativeIndex_78(ut: *mut UText, nativeIndex: i64);
1196}
1197unsafe extern "C" {
1198    pub fn utext_moveIndex32_78(ut: *mut UText, delta: i32) -> UBool;
1199}
1200unsafe extern "C" {
1201    pub fn utext_getPreviousNativeIndex_78(ut: *mut UText) -> i64;
1202}
1203unsafe extern "C" {
1204    pub fn utext_extract_78(
1205        ut: *mut UText,
1206        nativeStart: i64,
1207        nativeLimit: i64,
1208        dest: *mut UChar,
1209        destCapacity: i32,
1210        status: *mut UErrorCode,
1211    ) -> i32;
1212}
1213unsafe extern "C" {
1214    pub fn utext_isWritable_78(ut: *const UText) -> UBool;
1215}
1216unsafe extern "C" {
1217    pub fn utext_hasMetaData_78(ut: *const UText) -> UBool;
1218}
1219unsafe extern "C" {
1220    pub fn utext_replace_78(
1221        ut: *mut UText,
1222        nativeStart: i64,
1223        nativeLimit: i64,
1224        replacementText: *const UChar,
1225        replacementLength: i32,
1226        status: *mut UErrorCode,
1227    ) -> i32;
1228}
1229unsafe extern "C" {
1230    pub fn utext_copy_78(
1231        ut: *mut UText,
1232        nativeStart: i64,
1233        nativeLimit: i64,
1234        destIndex: i64,
1235        move_: UBool,
1236        status: *mut UErrorCode,
1237    );
1238}
1239unsafe extern "C" {
1240    pub fn utext_freeze_78(ut: *mut UText);
1241}
1242pub type UTextClone = ::std::option::Option<
1243    unsafe extern "C" fn(
1244        dest: *mut UText,
1245        src: *const UText,
1246        deep: UBool,
1247        status: *mut UErrorCode,
1248    ) -> *mut UText,
1249>;
1250pub type UTextNativeLength = ::std::option::Option<unsafe extern "C" fn(ut: *mut UText) -> i64>;
1251pub type UTextAccess = ::std::option::Option<
1252    unsafe extern "C" fn(ut: *mut UText, nativeIndex: i64, forward: UBool) -> UBool,
1253>;
1254pub type UTextExtract = ::std::option::Option<
1255    unsafe extern "C" fn(
1256        ut: *mut UText,
1257        nativeStart: i64,
1258        nativeLimit: i64,
1259        dest: *mut UChar,
1260        destCapacity: i32,
1261        status: *mut UErrorCode,
1262    ) -> i32,
1263>;
1264pub type UTextReplace = ::std::option::Option<
1265    unsafe extern "C" fn(
1266        ut: *mut UText,
1267        nativeStart: i64,
1268        nativeLimit: i64,
1269        replacementText: *const UChar,
1270        replacmentLength: i32,
1271        status: *mut UErrorCode,
1272    ) -> i32,
1273>;
1274pub type UTextCopy = ::std::option::Option<
1275    unsafe extern "C" fn(
1276        ut: *mut UText,
1277        nativeStart: i64,
1278        nativeLimit: i64,
1279        nativeDest: i64,
1280        move_: UBool,
1281        status: *mut UErrorCode,
1282    ),
1283>;
1284pub type UTextMapOffsetToNative =
1285    ::std::option::Option<unsafe extern "C" fn(ut: *const UText) -> i64>;
1286pub type UTextMapNativeIndexToUTF16 =
1287    ::std::option::Option<unsafe extern "C" fn(ut: *const UText, nativeIndex: i64) -> i32>;
1288pub type UTextClose = ::std::option::Option<unsafe extern "C" fn(ut: *mut UText)>;
1289#[repr(C)]
1290#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, PartialEq)]
1291pub struct UTextFuncs {
1292    pub tableSize: i32,
1293    pub reserved1: i32,
1294    pub reserved2: i32,
1295    pub reserved3: i32,
1296    pub clone: UTextClone,
1297    pub nativeLength: UTextNativeLength,
1298    pub access: UTextAccess,
1299    pub extract: UTextExtract,
1300    pub replace: UTextReplace,
1301    pub copy: UTextCopy,
1302    pub mapOffsetToNative: UTextMapOffsetToNative,
1303    pub mapNativeIndexToUTF16: UTextMapNativeIndexToUTF16,
1304    pub close: UTextClose,
1305    pub spare1: UTextClose,
1306    pub spare2: UTextClose,
1307    pub spare3: UTextClose,
1308}
1309#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1310const _: () = {
1311    ["Size of UTextFuncs"][::std::mem::size_of::<UTextFuncs>() - 112usize];
1312    ["Alignment of UTextFuncs"][::std::mem::align_of::<UTextFuncs>() - 8usize];
1313    ["Offset of field: UTextFuncs::tableSize"]
1314        [::std::mem::offset_of!(UTextFuncs, tableSize) - 0usize];
1315    ["Offset of field: UTextFuncs::reserved1"]
1316        [::std::mem::offset_of!(UTextFuncs, reserved1) - 4usize];
1317    ["Offset of field: UTextFuncs::reserved2"]
1318        [::std::mem::offset_of!(UTextFuncs, reserved2) - 8usize];
1319    ["Offset of field: UTextFuncs::reserved3"]
1320        [::std::mem::offset_of!(UTextFuncs, reserved3) - 12usize];
1321    ["Offset of field: UTextFuncs::clone"][::std::mem::offset_of!(UTextFuncs, clone) - 16usize];
1322    ["Offset of field: UTextFuncs::nativeLength"]
1323        [::std::mem::offset_of!(UTextFuncs, nativeLength) - 24usize];
1324    ["Offset of field: UTextFuncs::access"][::std::mem::offset_of!(UTextFuncs, access) - 32usize];
1325    ["Offset of field: UTextFuncs::extract"][::std::mem::offset_of!(UTextFuncs, extract) - 40usize];
1326    ["Offset of field: UTextFuncs::replace"][::std::mem::offset_of!(UTextFuncs, replace) - 48usize];
1327    ["Offset of field: UTextFuncs::copy"][::std::mem::offset_of!(UTextFuncs, copy) - 56usize];
1328    ["Offset of field: UTextFuncs::mapOffsetToNative"]
1329        [::std::mem::offset_of!(UTextFuncs, mapOffsetToNative) - 64usize];
1330    ["Offset of field: UTextFuncs::mapNativeIndexToUTF16"]
1331        [::std::mem::offset_of!(UTextFuncs, mapNativeIndexToUTF16) - 72usize];
1332    ["Offset of field: UTextFuncs::close"][::std::mem::offset_of!(UTextFuncs, close) - 80usize];
1333    ["Offset of field: UTextFuncs::spare1"][::std::mem::offset_of!(UTextFuncs, spare1) - 88usize];
1334    ["Offset of field: UTextFuncs::spare2"][::std::mem::offset_of!(UTextFuncs, spare2) - 96usize];
1335    ["Offset of field: UTextFuncs::spare3"][::std::mem::offset_of!(UTextFuncs, spare3) - 104usize];
1336};
1337#[repr(C)]
1338#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq)]
1339pub struct UText {
1340    pub magic: u32,
1341    pub flags: i32,
1342    pub providerProperties: i32,
1343    pub sizeOfStruct: i32,
1344    pub chunkNativeLimit: i64,
1345    pub extraSize: i32,
1346    pub nativeIndexingLimit: i32,
1347    pub chunkNativeStart: i64,
1348    pub chunkOffset: i32,
1349    pub chunkLength: i32,
1350    pub chunkContents: *const UChar,
1351    pub pFuncs: *const UTextFuncs,
1352    pub pExtra: *mut ::std::os::raw::c_void,
1353    pub context: *const ::std::os::raw::c_void,
1354    pub p: *const ::std::os::raw::c_void,
1355    pub q: *const ::std::os::raw::c_void,
1356    pub r: *const ::std::os::raw::c_void,
1357    pub privP: *mut ::std::os::raw::c_void,
1358    pub a: i64,
1359    pub b: i32,
1360    pub c: i32,
1361    pub privA: i64,
1362    pub privB: i32,
1363    pub privC: i32,
1364}
1365#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1366const _: () = {
1367    ["Size of UText"][::std::mem::size_of::<UText>() - 144usize];
1368    ["Alignment of UText"][::std::mem::align_of::<UText>() - 8usize];
1369    ["Offset of field: UText::magic"][::std::mem::offset_of!(UText, magic) - 0usize];
1370    ["Offset of field: UText::flags"][::std::mem::offset_of!(UText, flags) - 4usize];
1371    ["Offset of field: UText::providerProperties"]
1372        [::std::mem::offset_of!(UText, providerProperties) - 8usize];
1373    ["Offset of field: UText::sizeOfStruct"][::std::mem::offset_of!(UText, sizeOfStruct) - 12usize];
1374    ["Offset of field: UText::chunkNativeLimit"]
1375        [::std::mem::offset_of!(UText, chunkNativeLimit) - 16usize];
1376    ["Offset of field: UText::extraSize"][::std::mem::offset_of!(UText, extraSize) - 24usize];
1377    ["Offset of field: UText::nativeIndexingLimit"]
1378        [::std::mem::offset_of!(UText, nativeIndexingLimit) - 28usize];
1379    ["Offset of field: UText::chunkNativeStart"]
1380        [::std::mem::offset_of!(UText, chunkNativeStart) - 32usize];
1381    ["Offset of field: UText::chunkOffset"][::std::mem::offset_of!(UText, chunkOffset) - 40usize];
1382    ["Offset of field: UText::chunkLength"][::std::mem::offset_of!(UText, chunkLength) - 44usize];
1383    ["Offset of field: UText::chunkContents"]
1384        [::std::mem::offset_of!(UText, chunkContents) - 48usize];
1385    ["Offset of field: UText::pFuncs"][::std::mem::offset_of!(UText, pFuncs) - 56usize];
1386    ["Offset of field: UText::pExtra"][::std::mem::offset_of!(UText, pExtra) - 64usize];
1387    ["Offset of field: UText::context"][::std::mem::offset_of!(UText, context) - 72usize];
1388    ["Offset of field: UText::p"][::std::mem::offset_of!(UText, p) - 80usize];
1389    ["Offset of field: UText::q"][::std::mem::offset_of!(UText, q) - 88usize];
1390    ["Offset of field: UText::r"][::std::mem::offset_of!(UText, r) - 96usize];
1391    ["Offset of field: UText::privP"][::std::mem::offset_of!(UText, privP) - 104usize];
1392    ["Offset of field: UText::a"][::std::mem::offset_of!(UText, a) - 112usize];
1393    ["Offset of field: UText::b"][::std::mem::offset_of!(UText, b) - 120usize];
1394    ["Offset of field: UText::c"][::std::mem::offset_of!(UText, c) - 124usize];
1395    ["Offset of field: UText::privA"][::std::mem::offset_of!(UText, privA) - 128usize];
1396    ["Offset of field: UText::privB"][::std::mem::offset_of!(UText, privB) - 136usize];
1397    ["Offset of field: UText::privC"][::std::mem::offset_of!(UText, privC) - 140usize];
1398};
1399impl Default for UText {
1400    fn default() -> Self {
1401        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1402        unsafe {
1403            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1404            s.assume_init()
1405        }
1406    }
1407}
1408unsafe extern "C" {
1409    pub fn utext_setup_78(ut: *mut UText, extraSpace: i32, status: *mut UErrorCode) -> *mut UText;
1410}
1411#[repr(C)]
1412#[derive(Debug, Copy, Clone)]
1413pub struct UBreakIterator {
1414    _unused: [u8; 0],
1415}
1416#[repr(C)]
1417#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, PartialEq)]
1418pub struct UParseError {
1419    pub line: i32,
1420    pub offset: i32,
1421    pub preContext: [UChar; 16usize],
1422    pub postContext: [UChar; 16usize],
1423}
1424#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1425const _: () = {
1426    ["Size of UParseError"][::std::mem::size_of::<UParseError>() - 72usize];
1427    ["Alignment of UParseError"][::std::mem::align_of::<UParseError>() - 4usize];
1428    ["Offset of field: UParseError::line"][::std::mem::offset_of!(UParseError, line) - 0usize];
1429    ["Offset of field: UParseError::offset"][::std::mem::offset_of!(UParseError, offset) - 4usize];
1430    ["Offset of field: UParseError::preContext"]
1431        [::std::mem::offset_of!(UParseError, preContext) - 8usize];
1432    ["Offset of field: UParseError::postContext"]
1433        [::std::mem::offset_of!(UParseError, postContext) - 40usize];
1434};
1435#[repr(u32)]
1436#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1437pub enum UBreakIteratorType {
1438    UBRK_CHARACTER = 0,
1439    UBRK_WORD = 1,
1440    UBRK_LINE = 2,
1441    UBRK_SENTENCE = 3,
1442    UBRK_TITLE = 4,
1443    UBRK_COUNT = 5,
1444}
1445impl UWordBreak {
1446    pub const UBRK_WORD_NUMBER: UWordBreak = UWordBreak::UBRK_WORD_NONE_LIMIT;
1447}
1448impl UWordBreak {
1449    pub const UBRK_WORD_LETTER: UWordBreak = UWordBreak::UBRK_WORD_NUMBER_LIMIT;
1450}
1451impl UWordBreak {
1452    pub const UBRK_WORD_KANA: UWordBreak = UWordBreak::UBRK_WORD_LETTER_LIMIT;
1453}
1454impl UWordBreak {
1455    pub const UBRK_WORD_IDEO: UWordBreak = UWordBreak::UBRK_WORD_KANA_LIMIT;
1456}
1457#[repr(u32)]
1458#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1459pub enum UWordBreak {
1460    UBRK_WORD_NONE = 0,
1461    UBRK_WORD_NONE_LIMIT = 100,
1462    UBRK_WORD_NUMBER_LIMIT = 200,
1463    UBRK_WORD_LETTER_LIMIT = 300,
1464    UBRK_WORD_KANA_LIMIT = 400,
1465    UBRK_WORD_IDEO_LIMIT = 500,
1466}
1467impl ULineBreakTag {
1468    pub const UBRK_LINE_HARD: ULineBreakTag = ULineBreakTag::UBRK_LINE_SOFT_LIMIT;
1469}
1470#[repr(u32)]
1471#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1472pub enum ULineBreakTag {
1473    UBRK_LINE_SOFT = 0,
1474    UBRK_LINE_SOFT_LIMIT = 100,
1475    UBRK_LINE_HARD_LIMIT = 200,
1476}
1477impl USentenceBreakTag {
1478    pub const UBRK_SENTENCE_SEP: USentenceBreakTag = USentenceBreakTag::UBRK_SENTENCE_TERM_LIMIT;
1479}
1480#[repr(u32)]
1481#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1482pub enum USentenceBreakTag {
1483    UBRK_SENTENCE_TERM = 0,
1484    UBRK_SENTENCE_TERM_LIMIT = 100,
1485    UBRK_SENTENCE_SEP_LIMIT = 200,
1486}
1487unsafe extern "C" {
1488    pub fn ubrk_open_78(
1489        type_: UBreakIteratorType,
1490        locale: *const ::std::os::raw::c_char,
1491        text: *const UChar,
1492        textLength: i32,
1493        status: *mut UErrorCode,
1494    ) -> *mut UBreakIterator;
1495}
1496unsafe extern "C" {
1497    pub fn ubrk_openRules_78(
1498        rules: *const UChar,
1499        rulesLength: i32,
1500        text: *const UChar,
1501        textLength: i32,
1502        parseErr: *mut UParseError,
1503        status: *mut UErrorCode,
1504    ) -> *mut UBreakIterator;
1505}
1506unsafe extern "C" {
1507    pub fn ubrk_openBinaryRules_78(
1508        binaryRules: *const u8,
1509        rulesLength: i32,
1510        text: *const UChar,
1511        textLength: i32,
1512        status: *mut UErrorCode,
1513    ) -> *mut UBreakIterator;
1514}
1515unsafe extern "C" {
1516    pub fn ubrk_safeClone_78(
1517        bi: *const UBreakIterator,
1518        stackBuffer: *mut ::std::os::raw::c_void,
1519        pBufferSize: *mut i32,
1520        status: *mut UErrorCode,
1521    ) -> *mut UBreakIterator;
1522}
1523unsafe extern "C" {
1524    pub fn ubrk_clone_78(bi: *const UBreakIterator, status: *mut UErrorCode)
1525        -> *mut UBreakIterator;
1526}
1527unsafe extern "C" {
1528    pub fn ubrk_close_78(bi: *mut UBreakIterator);
1529}
1530unsafe extern "C" {
1531    pub fn ubrk_setText_78(
1532        bi: *mut UBreakIterator,
1533        text: *const UChar,
1534        textLength: i32,
1535        status: *mut UErrorCode,
1536    );
1537}
1538unsafe extern "C" {
1539    pub fn ubrk_setUText_78(bi: *mut UBreakIterator, text: *mut UText, status: *mut UErrorCode);
1540}
1541unsafe extern "C" {
1542    pub fn ubrk_current_78(bi: *const UBreakIterator) -> i32;
1543}
1544unsafe extern "C" {
1545    pub fn ubrk_next_78(bi: *mut UBreakIterator) -> i32;
1546}
1547unsafe extern "C" {
1548    pub fn ubrk_previous_78(bi: *mut UBreakIterator) -> i32;
1549}
1550unsafe extern "C" {
1551    pub fn ubrk_first_78(bi: *mut UBreakIterator) -> i32;
1552}
1553unsafe extern "C" {
1554    pub fn ubrk_last_78(bi: *mut UBreakIterator) -> i32;
1555}
1556unsafe extern "C" {
1557    pub fn ubrk_preceding_78(bi: *mut UBreakIterator, offset: i32) -> i32;
1558}
1559unsafe extern "C" {
1560    pub fn ubrk_following_78(bi: *mut UBreakIterator, offset: i32) -> i32;
1561}
1562unsafe extern "C" {
1563    pub fn ubrk_getAvailable_78(index: i32) -> *const ::std::os::raw::c_char;
1564}
1565unsafe extern "C" {
1566    pub fn ubrk_countAvailable_78() -> i32;
1567}
1568unsafe extern "C" {
1569    pub fn ubrk_isBoundary_78(bi: *mut UBreakIterator, offset: i32) -> UBool;
1570}
1571unsafe extern "C" {
1572    pub fn ubrk_getRuleStatus_78(bi: *mut UBreakIterator) -> i32;
1573}
1574unsafe extern "C" {
1575    pub fn ubrk_getRuleStatusVec_78(
1576        bi: *mut UBreakIterator,
1577        fillInVec: *mut i32,
1578        capacity: i32,
1579        status: *mut UErrorCode,
1580    ) -> i32;
1581}
1582unsafe extern "C" {
1583    pub fn ubrk_getLocaleByType_78(
1584        bi: *const UBreakIterator,
1585        type_: ULocDataLocaleType,
1586        status: *mut UErrorCode,
1587    ) -> *const ::std::os::raw::c_char;
1588}
1589unsafe extern "C" {
1590    pub fn ubrk_refreshUText_78(bi: *mut UBreakIterator, text: *mut UText, status: *mut UErrorCode);
1591}
1592unsafe extern "C" {
1593    pub fn ubrk_getBinaryRules_78(
1594        bi: *mut UBreakIterator,
1595        binaryRules: *mut u8,
1596        rulesCapacity: i32,
1597        status: *mut UErrorCode,
1598    ) -> i32;
1599}
1600pub type UCalendar = *mut ::std::os::raw::c_void;
1601impl UCalendarType {
1602    pub const UCAL_DEFAULT: UCalendarType = UCalendarType::UCAL_TRADITIONAL;
1603}
1604#[repr(u32)]
1605#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1606pub enum UCalendarType {
1607    UCAL_TRADITIONAL = 0,
1608    UCAL_GREGORIAN = 1,
1609}
1610impl UCalendarDateFields {
1611    pub const UCAL_DAY_OF_MONTH: UCalendarDateFields = UCalendarDateFields::UCAL_DATE;
1612}
1613#[repr(u32)]
1614#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1615pub enum UCalendarDateFields {
1616    UCAL_ERA = 0,
1617    UCAL_YEAR = 1,
1618    UCAL_MONTH = 2,
1619    UCAL_WEEK_OF_YEAR = 3,
1620    UCAL_WEEK_OF_MONTH = 4,
1621    UCAL_DATE = 5,
1622    UCAL_DAY_OF_YEAR = 6,
1623    UCAL_DAY_OF_WEEK = 7,
1624    UCAL_DAY_OF_WEEK_IN_MONTH = 8,
1625    UCAL_AM_PM = 9,
1626    UCAL_HOUR = 10,
1627    UCAL_HOUR_OF_DAY = 11,
1628    UCAL_MINUTE = 12,
1629    UCAL_SECOND = 13,
1630    UCAL_MILLISECOND = 14,
1631    UCAL_ZONE_OFFSET = 15,
1632    UCAL_DST_OFFSET = 16,
1633    UCAL_YEAR_WOY = 17,
1634    UCAL_DOW_LOCAL = 18,
1635    UCAL_EXTENDED_YEAR = 19,
1636    UCAL_JULIAN_DAY = 20,
1637    UCAL_MILLISECONDS_IN_DAY = 21,
1638    UCAL_IS_LEAP_MONTH = 22,
1639    UCAL_ORDINAL_MONTH = 23,
1640    UCAL_FIELD_COUNT = 24,
1641}
1642#[repr(u32)]
1643#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1644pub enum UCalendarDaysOfWeek {
1645    UCAL_SUNDAY = 1,
1646    UCAL_MONDAY = 2,
1647    UCAL_TUESDAY = 3,
1648    UCAL_WEDNESDAY = 4,
1649    UCAL_THURSDAY = 5,
1650    UCAL_FRIDAY = 6,
1651    UCAL_SATURDAY = 7,
1652}
1653#[repr(u32)]
1654#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1655pub enum UCalendarMonths {
1656    UCAL_JANUARY = 0,
1657    UCAL_FEBRUARY = 1,
1658    UCAL_MARCH = 2,
1659    UCAL_APRIL = 3,
1660    UCAL_MAY = 4,
1661    UCAL_JUNE = 5,
1662    UCAL_JULY = 6,
1663    UCAL_AUGUST = 7,
1664    UCAL_SEPTEMBER = 8,
1665    UCAL_OCTOBER = 9,
1666    UCAL_NOVEMBER = 10,
1667    UCAL_DECEMBER = 11,
1668    UCAL_UNDECIMBER = 12,
1669}
1670#[repr(u32)]
1671#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1672pub enum UCalendarAMPMs {
1673    UCAL_AM = 0,
1674    UCAL_PM = 1,
1675}
1676#[repr(u32)]
1677#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1678pub enum USystemTimeZoneType {
1679    UCAL_ZONE_TYPE_ANY = 0,
1680    UCAL_ZONE_TYPE_CANONICAL = 1,
1681    UCAL_ZONE_TYPE_CANONICAL_LOCATION = 2,
1682}
1683unsafe extern "C" {
1684    pub fn ucal_openTimeZoneIDEnumeration_78(
1685        zoneType: USystemTimeZoneType,
1686        region: *const ::std::os::raw::c_char,
1687        rawOffset: *const i32,
1688        ec: *mut UErrorCode,
1689    ) -> *mut UEnumeration;
1690}
1691unsafe extern "C" {
1692    pub fn ucal_openTimeZones_78(ec: *mut UErrorCode) -> *mut UEnumeration;
1693}
1694unsafe extern "C" {
1695    pub fn ucal_openCountryTimeZones_78(
1696        country: *const ::std::os::raw::c_char,
1697        ec: *mut UErrorCode,
1698    ) -> *mut UEnumeration;
1699}
1700unsafe extern "C" {
1701    pub fn ucal_getDefaultTimeZone_78(
1702        result: *mut UChar,
1703        resultCapacity: i32,
1704        ec: *mut UErrorCode,
1705    ) -> i32;
1706}
1707unsafe extern "C" {
1708    pub fn ucal_setDefaultTimeZone_78(zoneID: *const UChar, ec: *mut UErrorCode);
1709}
1710unsafe extern "C" {
1711    pub fn ucal_getHostTimeZone_78(
1712        result: *mut UChar,
1713        resultCapacity: i32,
1714        ec: *mut UErrorCode,
1715    ) -> i32;
1716}
1717unsafe extern "C" {
1718    pub fn ucal_getDSTSavings_78(zoneID: *const UChar, ec: *mut UErrorCode) -> i32;
1719}
1720unsafe extern "C" {
1721    pub fn ucal_getNow_78() -> UDate;
1722}
1723unsafe extern "C" {
1724    pub fn ucal_open_78(
1725        zoneID: *const UChar,
1726        len: i32,
1727        locale: *const ::std::os::raw::c_char,
1728        type_: UCalendarType,
1729        status: *mut UErrorCode,
1730    ) -> *mut UCalendar;
1731}
1732unsafe extern "C" {
1733    pub fn ucal_close_78(cal: *mut UCalendar);
1734}
1735unsafe extern "C" {
1736    pub fn ucal_clone_78(cal: *const UCalendar, status: *mut UErrorCode) -> *mut UCalendar;
1737}
1738unsafe extern "C" {
1739    pub fn ucal_setTimeZone_78(
1740        cal: *mut UCalendar,
1741        zoneID: *const UChar,
1742        len: i32,
1743        status: *mut UErrorCode,
1744    );
1745}
1746unsafe extern "C" {
1747    pub fn ucal_getTimeZoneID_78(
1748        cal: *const UCalendar,
1749        result: *mut UChar,
1750        resultLength: i32,
1751        status: *mut UErrorCode,
1752    ) -> i32;
1753}
1754#[repr(u32)]
1755#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1756pub enum UCalendarDisplayNameType {
1757    UCAL_STANDARD = 0,
1758    UCAL_SHORT_STANDARD = 1,
1759    UCAL_DST = 2,
1760    UCAL_SHORT_DST = 3,
1761}
1762unsafe extern "C" {
1763    pub fn ucal_getTimeZoneDisplayName_78(
1764        cal: *const UCalendar,
1765        type_: UCalendarDisplayNameType,
1766        locale: *const ::std::os::raw::c_char,
1767        result: *mut UChar,
1768        resultLength: i32,
1769        status: *mut UErrorCode,
1770    ) -> i32;
1771}
1772unsafe extern "C" {
1773    pub fn ucal_inDaylightTime_78(cal: *const UCalendar, status: *mut UErrorCode) -> UBool;
1774}
1775unsafe extern "C" {
1776    pub fn ucal_setGregorianChange_78(
1777        cal: *mut UCalendar,
1778        date: UDate,
1779        pErrorCode: *mut UErrorCode,
1780    );
1781}
1782unsafe extern "C" {
1783    pub fn ucal_getGregorianChange_78(cal: *const UCalendar, pErrorCode: *mut UErrorCode) -> UDate;
1784}
1785#[repr(u32)]
1786#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1787pub enum UCalendarAttribute {
1788    UCAL_LENIENT = 0,
1789    UCAL_FIRST_DAY_OF_WEEK = 1,
1790    UCAL_MINIMAL_DAYS_IN_FIRST_WEEK = 2,
1791    UCAL_REPEATED_WALL_TIME = 3,
1792    UCAL_SKIPPED_WALL_TIME = 4,
1793}
1794#[repr(u32)]
1795#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1796pub enum UCalendarWallTimeOption {
1797    UCAL_WALLTIME_LAST = 0,
1798    UCAL_WALLTIME_FIRST = 1,
1799    UCAL_WALLTIME_NEXT_VALID = 2,
1800}
1801unsafe extern "C" {
1802    pub fn ucal_getAttribute_78(cal: *const UCalendar, attr: UCalendarAttribute) -> i32;
1803}
1804unsafe extern "C" {
1805    pub fn ucal_setAttribute_78(cal: *mut UCalendar, attr: UCalendarAttribute, newValue: i32);
1806}
1807unsafe extern "C" {
1808    pub fn ucal_getAvailable_78(localeIndex: i32) -> *const ::std::os::raw::c_char;
1809}
1810unsafe extern "C" {
1811    pub fn ucal_countAvailable_78() -> i32;
1812}
1813unsafe extern "C" {
1814    pub fn ucal_getMillis_78(cal: *const UCalendar, status: *mut UErrorCode) -> UDate;
1815}
1816unsafe extern "C" {
1817    pub fn ucal_setMillis_78(cal: *mut UCalendar, dateTime: UDate, status: *mut UErrorCode);
1818}
1819unsafe extern "C" {
1820    pub fn ucal_setDate_78(
1821        cal: *mut UCalendar,
1822        year: i32,
1823        month: i32,
1824        date: i32,
1825        status: *mut UErrorCode,
1826    );
1827}
1828unsafe extern "C" {
1829    pub fn ucal_setDateTime_78(
1830        cal: *mut UCalendar,
1831        year: i32,
1832        month: i32,
1833        date: i32,
1834        hour: i32,
1835        minute: i32,
1836        second: i32,
1837        status: *mut UErrorCode,
1838    );
1839}
1840unsafe extern "C" {
1841    pub fn ucal_equivalentTo_78(cal1: *const UCalendar, cal2: *const UCalendar) -> UBool;
1842}
1843unsafe extern "C" {
1844    pub fn ucal_add_78(
1845        cal: *mut UCalendar,
1846        field: UCalendarDateFields,
1847        amount: i32,
1848        status: *mut UErrorCode,
1849    );
1850}
1851unsafe extern "C" {
1852    pub fn ucal_roll_78(
1853        cal: *mut UCalendar,
1854        field: UCalendarDateFields,
1855        amount: i32,
1856        status: *mut UErrorCode,
1857    );
1858}
1859unsafe extern "C" {
1860    pub fn ucal_get_78(
1861        cal: *const UCalendar,
1862        field: UCalendarDateFields,
1863        status: *mut UErrorCode,
1864    ) -> i32;
1865}
1866unsafe extern "C" {
1867    pub fn ucal_set_78(cal: *mut UCalendar, field: UCalendarDateFields, value: i32);
1868}
1869unsafe extern "C" {
1870    pub fn ucal_isSet_78(cal: *const UCalendar, field: UCalendarDateFields) -> UBool;
1871}
1872unsafe extern "C" {
1873    pub fn ucal_clearField_78(cal: *mut UCalendar, field: UCalendarDateFields);
1874}
1875unsafe extern "C" {
1876    pub fn ucal_clear_78(calendar: *mut UCalendar);
1877}
1878#[repr(u32)]
1879#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1880pub enum UCalendarLimitType {
1881    UCAL_MINIMUM = 0,
1882    UCAL_MAXIMUM = 1,
1883    UCAL_GREATEST_MINIMUM = 2,
1884    UCAL_LEAST_MAXIMUM = 3,
1885    UCAL_ACTUAL_MINIMUM = 4,
1886    UCAL_ACTUAL_MAXIMUM = 5,
1887}
1888unsafe extern "C" {
1889    pub fn ucal_getLimit_78(
1890        cal: *const UCalendar,
1891        field: UCalendarDateFields,
1892        type_: UCalendarLimitType,
1893        status: *mut UErrorCode,
1894    ) -> i32;
1895}
1896unsafe extern "C" {
1897    pub fn ucal_getLocaleByType_78(
1898        cal: *const UCalendar,
1899        type_: ULocDataLocaleType,
1900        status: *mut UErrorCode,
1901    ) -> *const ::std::os::raw::c_char;
1902}
1903unsafe extern "C" {
1904    pub fn ucal_getTZDataVersion_78(status: *mut UErrorCode) -> *const ::std::os::raw::c_char;
1905}
1906unsafe extern "C" {
1907    pub fn ucal_getCanonicalTimeZoneID_78(
1908        id: *const UChar,
1909        len: i32,
1910        result: *mut UChar,
1911        resultCapacity: i32,
1912        isSystemID: *mut UBool,
1913        status: *mut UErrorCode,
1914    ) -> i32;
1915}
1916unsafe extern "C" {
1917    pub fn ucal_getIanaTimeZoneID_78(
1918        id: *const UChar,
1919        len: i32,
1920        result: *mut UChar,
1921        resultCapacity: i32,
1922        status: *mut UErrorCode,
1923    ) -> i32;
1924}
1925unsafe extern "C" {
1926    pub fn ucal_getType_78(
1927        cal: *const UCalendar,
1928        status: *mut UErrorCode,
1929    ) -> *const ::std::os::raw::c_char;
1930}
1931unsafe extern "C" {
1932    pub fn ucal_getKeywordValuesForLocale_78(
1933        key: *const ::std::os::raw::c_char,
1934        locale: *const ::std::os::raw::c_char,
1935        commonlyUsed: UBool,
1936        status: *mut UErrorCode,
1937    ) -> *mut UEnumeration;
1938}
1939#[repr(u32)]
1940#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1941pub enum UCalendarWeekdayType {
1942    UCAL_WEEKDAY = 0,
1943    UCAL_WEEKEND = 1,
1944    UCAL_WEEKEND_ONSET = 2,
1945    UCAL_WEEKEND_CEASE = 3,
1946}
1947unsafe extern "C" {
1948    pub fn ucal_getDayOfWeekType_78(
1949        cal: *const UCalendar,
1950        dayOfWeek: UCalendarDaysOfWeek,
1951        status: *mut UErrorCode,
1952    ) -> UCalendarWeekdayType;
1953}
1954unsafe extern "C" {
1955    pub fn ucal_getWeekendTransition_78(
1956        cal: *const UCalendar,
1957        dayOfWeek: UCalendarDaysOfWeek,
1958        status: *mut UErrorCode,
1959    ) -> i32;
1960}
1961unsafe extern "C" {
1962    pub fn ucal_isWeekend_78(cal: *const UCalendar, date: UDate, status: *mut UErrorCode) -> UBool;
1963}
1964unsafe extern "C" {
1965    pub fn ucal_getFieldDifference_78(
1966        cal: *mut UCalendar,
1967        target: UDate,
1968        field: UCalendarDateFields,
1969        status: *mut UErrorCode,
1970    ) -> i32;
1971}
1972#[repr(u32)]
1973#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
1974pub enum UTimeZoneTransitionType {
1975    UCAL_TZ_TRANSITION_NEXT = 0,
1976    UCAL_TZ_TRANSITION_NEXT_INCLUSIVE = 1,
1977    UCAL_TZ_TRANSITION_PREVIOUS = 2,
1978    UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE = 3,
1979}
1980unsafe extern "C" {
1981    pub fn ucal_getTimeZoneTransitionDate_78(
1982        cal: *const UCalendar,
1983        type_: UTimeZoneTransitionType,
1984        transition: *mut UDate,
1985        status: *mut UErrorCode,
1986    ) -> UBool;
1987}
1988unsafe extern "C" {
1989    pub fn ucal_getWindowsTimeZoneID_78(
1990        id: *const UChar,
1991        len: i32,
1992        winid: *mut UChar,
1993        winidCapacity: i32,
1994        status: *mut UErrorCode,
1995    ) -> i32;
1996}
1997unsafe extern "C" {
1998    pub fn ucal_getTimeZoneIDForWindowsID_78(
1999        winid: *const UChar,
2000        len: i32,
2001        region: *const ::std::os::raw::c_char,
2002        id: *mut UChar,
2003        idCapacity: i32,
2004        status: *mut UErrorCode,
2005    ) -> i32;
2006}
2007#[repr(u32)]
2008#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2009pub enum UTimeZoneLocalOption {
2010    UCAL_TZ_LOCAL_FORMER = 4,
2011    UCAL_TZ_LOCAL_LATTER = 12,
2012    UCAL_TZ_LOCAL_STANDARD_FORMER = 5,
2013    UCAL_TZ_LOCAL_STANDARD_LATTER = 13,
2014    UCAL_TZ_LOCAL_DAYLIGHT_FORMER = 7,
2015    UCAL_TZ_LOCAL_DAYLIGHT_LATTER = 15,
2016}
2017unsafe extern "C" {
2018    pub fn ucal_getTimeZoneOffsetFromLocal_78(
2019        cal: *const UCalendar,
2020        nonExistingTimeOpt: UTimeZoneLocalOption,
2021        duplicatedTimeOpt: UTimeZoneLocalOption,
2022        rawOffset: *mut i32,
2023        dstOffset: *mut i32,
2024        status: *mut UErrorCode,
2025    );
2026}
2027unsafe extern "C" {
2028    pub fn u_init_78(status: *mut UErrorCode);
2029}
2030unsafe extern "C" {
2031    pub fn u_cleanup_78();
2032}
2033pub type UMemAllocFn = ::std::option::Option<
2034    unsafe extern "C" fn(
2035        context: *const ::std::os::raw::c_void,
2036        size: usize,
2037    ) -> *mut ::std::os::raw::c_void,
2038>;
2039pub type UMemReallocFn = ::std::option::Option<
2040    unsafe extern "C" fn(
2041        context: *const ::std::os::raw::c_void,
2042        mem: *mut ::std::os::raw::c_void,
2043        size: usize,
2044    ) -> *mut ::std::os::raw::c_void,
2045>;
2046pub type UMemFreeFn = ::std::option::Option<
2047    unsafe extern "C" fn(context: *const ::std::os::raw::c_void, mem: *mut ::std::os::raw::c_void),
2048>;
2049unsafe extern "C" {
2050    pub fn u_setMemoryFunctions_78(
2051        context: *const ::std::os::raw::c_void,
2052        a: UMemAllocFn,
2053        r: UMemReallocFn,
2054        f: UMemFreeFn,
2055        status: *mut UErrorCode,
2056    );
2057}
2058pub type UMTX = *mut ::std::os::raw::c_void;
2059pub type UMtxInitFn = ::std::option::Option<
2060    unsafe extern "C" fn(
2061        context: *const ::std::os::raw::c_void,
2062        mutex: *mut UMTX,
2063        status: *mut UErrorCode,
2064    ),
2065>;
2066pub type UMtxFn = ::std::option::Option<
2067    unsafe extern "C" fn(context: *const ::std::os::raw::c_void, mutex: *mut UMTX),
2068>;
2069unsafe extern "C" {
2070    pub fn u_setMutexFunctions_78(
2071        context: *const ::std::os::raw::c_void,
2072        init: UMtxInitFn,
2073        destroy: UMtxFn,
2074        lock: UMtxFn,
2075        unlock: UMtxFn,
2076        status: *mut UErrorCode,
2077    );
2078}
2079pub type UMtxAtomicFn = ::std::option::Option<
2080    unsafe extern "C" fn(context: *const ::std::os::raw::c_void, p: *mut i32) -> i32,
2081>;
2082unsafe extern "C" {
2083    pub fn u_setAtomicIncDecFunctions_78(
2084        context: *const ::std::os::raw::c_void,
2085        inc: UMtxAtomicFn,
2086        dec: UMtxAtomicFn,
2087        status: *mut UErrorCode,
2088    );
2089}
2090#[repr(C)]
2091#[derive(Debug, Copy, Clone)]
2092pub struct UConverter {
2093    _unused: [u8; 0],
2094}
2095#[repr(u32)]
2096#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2097pub enum UConverterCallbackReason {
2098    UCNV_UNASSIGNED = 0,
2099    UCNV_ILLEGAL = 1,
2100    UCNV_IRREGULAR = 2,
2101    UCNV_RESET = 3,
2102    UCNV_CLOSE = 4,
2103    UCNV_CLONE = 5,
2104}
2105#[repr(C)]
2106#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq)]
2107pub struct UConverterFromUnicodeArgs {
2108    pub size: u16,
2109    pub flush: UBool,
2110    pub converter: *mut UConverter,
2111    pub source: *const UChar,
2112    pub sourceLimit: *const UChar,
2113    pub target: *mut ::std::os::raw::c_char,
2114    pub targetLimit: *const ::std::os::raw::c_char,
2115    pub offsets: *mut i32,
2116}
2117#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2118const _: () = {
2119    ["Size of UConverterFromUnicodeArgs"]
2120        [::std::mem::size_of::<UConverterFromUnicodeArgs>() - 56usize];
2121    ["Alignment of UConverterFromUnicodeArgs"]
2122        [::std::mem::align_of::<UConverterFromUnicodeArgs>() - 8usize];
2123    ["Offset of field: UConverterFromUnicodeArgs::size"]
2124        [::std::mem::offset_of!(UConverterFromUnicodeArgs, size) - 0usize];
2125    ["Offset of field: UConverterFromUnicodeArgs::flush"]
2126        [::std::mem::offset_of!(UConverterFromUnicodeArgs, flush) - 2usize];
2127    ["Offset of field: UConverterFromUnicodeArgs::converter"]
2128        [::std::mem::offset_of!(UConverterFromUnicodeArgs, converter) - 8usize];
2129    ["Offset of field: UConverterFromUnicodeArgs::source"]
2130        [::std::mem::offset_of!(UConverterFromUnicodeArgs, source) - 16usize];
2131    ["Offset of field: UConverterFromUnicodeArgs::sourceLimit"]
2132        [::std::mem::offset_of!(UConverterFromUnicodeArgs, sourceLimit) - 24usize];
2133    ["Offset of field: UConverterFromUnicodeArgs::target"]
2134        [::std::mem::offset_of!(UConverterFromUnicodeArgs, target) - 32usize];
2135    ["Offset of field: UConverterFromUnicodeArgs::targetLimit"]
2136        [::std::mem::offset_of!(UConverterFromUnicodeArgs, targetLimit) - 40usize];
2137    ["Offset of field: UConverterFromUnicodeArgs::offsets"]
2138        [::std::mem::offset_of!(UConverterFromUnicodeArgs, offsets) - 48usize];
2139};
2140impl Default for UConverterFromUnicodeArgs {
2141    fn default() -> Self {
2142        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2143        unsafe {
2144            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2145            s.assume_init()
2146        }
2147    }
2148}
2149#[repr(C)]
2150#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq)]
2151pub struct UConverterToUnicodeArgs {
2152    pub size: u16,
2153    pub flush: UBool,
2154    pub converter: *mut UConverter,
2155    pub source: *const ::std::os::raw::c_char,
2156    pub sourceLimit: *const ::std::os::raw::c_char,
2157    pub target: *mut UChar,
2158    pub targetLimit: *const UChar,
2159    pub offsets: *mut i32,
2160}
2161#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2162const _: () = {
2163    ["Size of UConverterToUnicodeArgs"][::std::mem::size_of::<UConverterToUnicodeArgs>() - 56usize];
2164    ["Alignment of UConverterToUnicodeArgs"]
2165        [::std::mem::align_of::<UConverterToUnicodeArgs>() - 8usize];
2166    ["Offset of field: UConverterToUnicodeArgs::size"]
2167        [::std::mem::offset_of!(UConverterToUnicodeArgs, size) - 0usize];
2168    ["Offset of field: UConverterToUnicodeArgs::flush"]
2169        [::std::mem::offset_of!(UConverterToUnicodeArgs, flush) - 2usize];
2170    ["Offset of field: UConverterToUnicodeArgs::converter"]
2171        [::std::mem::offset_of!(UConverterToUnicodeArgs, converter) - 8usize];
2172    ["Offset of field: UConverterToUnicodeArgs::source"]
2173        [::std::mem::offset_of!(UConverterToUnicodeArgs, source) - 16usize];
2174    ["Offset of field: UConverterToUnicodeArgs::sourceLimit"]
2175        [::std::mem::offset_of!(UConverterToUnicodeArgs, sourceLimit) - 24usize];
2176    ["Offset of field: UConverterToUnicodeArgs::target"]
2177        [::std::mem::offset_of!(UConverterToUnicodeArgs, target) - 32usize];
2178    ["Offset of field: UConverterToUnicodeArgs::targetLimit"]
2179        [::std::mem::offset_of!(UConverterToUnicodeArgs, targetLimit) - 40usize];
2180    ["Offset of field: UConverterToUnicodeArgs::offsets"]
2181        [::std::mem::offset_of!(UConverterToUnicodeArgs, offsets) - 48usize];
2182};
2183impl Default for UConverterToUnicodeArgs {
2184    fn default() -> Self {
2185        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2186        unsafe {
2187            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2188            s.assume_init()
2189        }
2190    }
2191}
2192impl UConverterType {
2193    pub const UCNV_LMBCS_LAST: UConverterType = UConverterType::UCNV_LMBCS_19;
2194}
2195#[repr(i32)]
2196#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2197pub enum UConverterType {
2198    UCNV_UNSUPPORTED_CONVERTER = -1,
2199    UCNV_SBCS = 0,
2200    UCNV_DBCS = 1,
2201    UCNV_MBCS = 2,
2202    UCNV_LATIN_1 = 3,
2203    UCNV_UTF8 = 4,
2204    UCNV_UTF16_BigEndian = 5,
2205    UCNV_UTF16_LittleEndian = 6,
2206    UCNV_UTF32_BigEndian = 7,
2207    UCNV_UTF32_LittleEndian = 8,
2208    UCNV_EBCDIC_STATEFUL = 9,
2209    UCNV_ISO_2022 = 10,
2210    UCNV_LMBCS_1 = 11,
2211    UCNV_LMBCS_2 = 12,
2212    UCNV_LMBCS_3 = 13,
2213    UCNV_LMBCS_4 = 14,
2214    UCNV_LMBCS_5 = 15,
2215    UCNV_LMBCS_6 = 16,
2216    UCNV_LMBCS_8 = 17,
2217    UCNV_LMBCS_11 = 18,
2218    UCNV_LMBCS_16 = 19,
2219    UCNV_LMBCS_17 = 20,
2220    UCNV_LMBCS_18 = 21,
2221    UCNV_LMBCS_19 = 22,
2222    UCNV_HZ = 23,
2223    UCNV_SCSU = 24,
2224    UCNV_ISCII = 25,
2225    UCNV_US_ASCII = 26,
2226    UCNV_UTF7 = 27,
2227    UCNV_BOCU1 = 28,
2228    UCNV_UTF16 = 29,
2229    UCNV_UTF32 = 30,
2230    UCNV_CESU8 = 31,
2231    UCNV_IMAP_MAILBOX = 32,
2232    UCNV_COMPOUND_TEXT = 33,
2233    UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES = 34,
2234}
2235#[repr(i32)]
2236#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2237pub enum UConverterPlatform {
2238    UCNV_UNKNOWN = -1,
2239    UCNV_IBM = 0,
2240}
2241pub type UConverterToUCallback = ::std::option::Option<
2242    unsafe extern "C" fn(
2243        context: *const ::std::os::raw::c_void,
2244        args: *mut UConverterToUnicodeArgs,
2245        codeUnits: *const ::std::os::raw::c_char,
2246        length: i32,
2247        reason: UConverterCallbackReason,
2248        pErrorCode: *mut UErrorCode,
2249    ),
2250>;
2251pub type UConverterFromUCallback = ::std::option::Option<
2252    unsafe extern "C" fn(
2253        context: *const ::std::os::raw::c_void,
2254        args: *mut UConverterFromUnicodeArgs,
2255        codeUnits: *const UChar,
2256        length: i32,
2257        codePoint: UChar32,
2258        reason: UConverterCallbackReason,
2259        pErrorCode: *mut UErrorCode,
2260    ),
2261>;
2262unsafe extern "C" {
2263    pub fn ucnv_compareNames_78(
2264        name1: *const ::std::os::raw::c_char,
2265        name2: *const ::std::os::raw::c_char,
2266    ) -> ::std::os::raw::c_int;
2267}
2268unsafe extern "C" {
2269    pub fn ucnv_open_78(
2270        converterName: *const ::std::os::raw::c_char,
2271        err: *mut UErrorCode,
2272    ) -> *mut UConverter;
2273}
2274unsafe extern "C" {
2275    pub fn ucnv_openU_78(name: *const UChar, err: *mut UErrorCode) -> *mut UConverter;
2276}
2277unsafe extern "C" {
2278    pub fn ucnv_openCCSID_78(
2279        codepage: i32,
2280        platform: UConverterPlatform,
2281        err: *mut UErrorCode,
2282    ) -> *mut UConverter;
2283}
2284unsafe extern "C" {
2285    pub fn ucnv_openPackage_78(
2286        packageName: *const ::std::os::raw::c_char,
2287        converterName: *const ::std::os::raw::c_char,
2288        err: *mut UErrorCode,
2289    ) -> *mut UConverter;
2290}
2291unsafe extern "C" {
2292    pub fn ucnv_clone_78(cnv: *const UConverter, status: *mut UErrorCode) -> *mut UConverter;
2293}
2294unsafe extern "C" {
2295    pub fn ucnv_safeClone_78(
2296        cnv: *const UConverter,
2297        stackBuffer: *mut ::std::os::raw::c_void,
2298        pBufferSize: *mut i32,
2299        status: *mut UErrorCode,
2300    ) -> *mut UConverter;
2301}
2302unsafe extern "C" {
2303    pub fn ucnv_close_78(converter: *mut UConverter);
2304}
2305unsafe extern "C" {
2306    pub fn ucnv_getSubstChars_78(
2307        converter: *const UConverter,
2308        subChars: *mut ::std::os::raw::c_char,
2309        len: *mut i8,
2310        err: *mut UErrorCode,
2311    );
2312}
2313unsafe extern "C" {
2314    pub fn ucnv_setSubstChars_78(
2315        converter: *mut UConverter,
2316        subChars: *const ::std::os::raw::c_char,
2317        len: i8,
2318        err: *mut UErrorCode,
2319    );
2320}
2321unsafe extern "C" {
2322    pub fn ucnv_setSubstString_78(
2323        cnv: *mut UConverter,
2324        s: *const UChar,
2325        length: i32,
2326        err: *mut UErrorCode,
2327    );
2328}
2329unsafe extern "C" {
2330    pub fn ucnv_getInvalidChars_78(
2331        converter: *const UConverter,
2332        errBytes: *mut ::std::os::raw::c_char,
2333        len: *mut i8,
2334        err: *mut UErrorCode,
2335    );
2336}
2337unsafe extern "C" {
2338    pub fn ucnv_getInvalidUChars_78(
2339        converter: *const UConverter,
2340        errUChars: *mut UChar,
2341        len: *mut i8,
2342        err: *mut UErrorCode,
2343    );
2344}
2345unsafe extern "C" {
2346    pub fn ucnv_reset_78(converter: *mut UConverter);
2347}
2348unsafe extern "C" {
2349    pub fn ucnv_resetToUnicode_78(converter: *mut UConverter);
2350}
2351unsafe extern "C" {
2352    pub fn ucnv_resetFromUnicode_78(converter: *mut UConverter);
2353}
2354unsafe extern "C" {
2355    pub fn ucnv_getMaxCharSize_78(converter: *const UConverter) -> i8;
2356}
2357unsafe extern "C" {
2358    pub fn ucnv_getMinCharSize_78(converter: *const UConverter) -> i8;
2359}
2360unsafe extern "C" {
2361    pub fn ucnv_getDisplayName_78(
2362        converter: *const UConverter,
2363        displayLocale: *const ::std::os::raw::c_char,
2364        displayName: *mut UChar,
2365        displayNameCapacity: i32,
2366        err: *mut UErrorCode,
2367    ) -> i32;
2368}
2369unsafe extern "C" {
2370    pub fn ucnv_getName_78(
2371        converter: *const UConverter,
2372        err: *mut UErrorCode,
2373    ) -> *const ::std::os::raw::c_char;
2374}
2375unsafe extern "C" {
2376    pub fn ucnv_getCCSID_78(converter: *const UConverter, err: *mut UErrorCode) -> i32;
2377}
2378unsafe extern "C" {
2379    pub fn ucnv_getPlatform_78(
2380        converter: *const UConverter,
2381        err: *mut UErrorCode,
2382    ) -> UConverterPlatform;
2383}
2384unsafe extern "C" {
2385    pub fn ucnv_getType_78(converter: *const UConverter) -> UConverterType;
2386}
2387unsafe extern "C" {
2388    pub fn ucnv_getStarters_78(
2389        converter: *const UConverter,
2390        starters: *mut UBool,
2391        err: *mut UErrorCode,
2392    );
2393}
2394#[repr(u32)]
2395#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2396pub enum UConverterUnicodeSet {
2397    UCNV_ROUNDTRIP_SET = 0,
2398    UCNV_ROUNDTRIP_AND_FALLBACK_SET = 1,
2399    UCNV_SET_COUNT = 2,
2400}
2401unsafe extern "C" {
2402    pub fn ucnv_getUnicodeSet_78(
2403        cnv: *const UConverter,
2404        setFillIn: *mut USet,
2405        whichSet: UConverterUnicodeSet,
2406        pErrorCode: *mut UErrorCode,
2407    );
2408}
2409unsafe extern "C" {
2410    pub fn ucnv_getToUCallBack_78(
2411        converter: *const UConverter,
2412        action: *mut UConverterToUCallback,
2413        context: *mut *const ::std::os::raw::c_void,
2414    );
2415}
2416unsafe extern "C" {
2417    pub fn ucnv_getFromUCallBack_78(
2418        converter: *const UConverter,
2419        action: *mut UConverterFromUCallback,
2420        context: *mut *const ::std::os::raw::c_void,
2421    );
2422}
2423unsafe extern "C" {
2424    pub fn ucnv_setToUCallBack_78(
2425        converter: *mut UConverter,
2426        newAction: UConverterToUCallback,
2427        newContext: *const ::std::os::raw::c_void,
2428        oldAction: *mut UConverterToUCallback,
2429        oldContext: *mut *const ::std::os::raw::c_void,
2430        err: *mut UErrorCode,
2431    );
2432}
2433unsafe extern "C" {
2434    pub fn ucnv_setFromUCallBack_78(
2435        converter: *mut UConverter,
2436        newAction: UConverterFromUCallback,
2437        newContext: *const ::std::os::raw::c_void,
2438        oldAction: *mut UConverterFromUCallback,
2439        oldContext: *mut *const ::std::os::raw::c_void,
2440        err: *mut UErrorCode,
2441    );
2442}
2443unsafe extern "C" {
2444    pub fn ucnv_fromUnicode_78(
2445        converter: *mut UConverter,
2446        target: *mut *mut ::std::os::raw::c_char,
2447        targetLimit: *const ::std::os::raw::c_char,
2448        source: *mut *const UChar,
2449        sourceLimit: *const UChar,
2450        offsets: *mut i32,
2451        flush: UBool,
2452        err: *mut UErrorCode,
2453    );
2454}
2455unsafe extern "C" {
2456    pub fn ucnv_toUnicode_78(
2457        converter: *mut UConverter,
2458        target: *mut *mut UChar,
2459        targetLimit: *const UChar,
2460        source: *mut *const ::std::os::raw::c_char,
2461        sourceLimit: *const ::std::os::raw::c_char,
2462        offsets: *mut i32,
2463        flush: UBool,
2464        err: *mut UErrorCode,
2465    );
2466}
2467unsafe extern "C" {
2468    pub fn ucnv_fromUChars_78(
2469        cnv: *mut UConverter,
2470        dest: *mut ::std::os::raw::c_char,
2471        destCapacity: i32,
2472        src: *const UChar,
2473        srcLength: i32,
2474        pErrorCode: *mut UErrorCode,
2475    ) -> i32;
2476}
2477unsafe extern "C" {
2478    pub fn ucnv_toUChars_78(
2479        cnv: *mut UConverter,
2480        dest: *mut UChar,
2481        destCapacity: i32,
2482        src: *const ::std::os::raw::c_char,
2483        srcLength: i32,
2484        pErrorCode: *mut UErrorCode,
2485    ) -> i32;
2486}
2487unsafe extern "C" {
2488    pub fn ucnv_getNextUChar_78(
2489        converter: *mut UConverter,
2490        source: *mut *const ::std::os::raw::c_char,
2491        sourceLimit: *const ::std::os::raw::c_char,
2492        err: *mut UErrorCode,
2493    ) -> UChar32;
2494}
2495unsafe extern "C" {
2496    pub fn ucnv_convertEx_78(
2497        targetCnv: *mut UConverter,
2498        sourceCnv: *mut UConverter,
2499        target: *mut *mut ::std::os::raw::c_char,
2500        targetLimit: *const ::std::os::raw::c_char,
2501        source: *mut *const ::std::os::raw::c_char,
2502        sourceLimit: *const ::std::os::raw::c_char,
2503        pivotStart: *mut UChar,
2504        pivotSource: *mut *mut UChar,
2505        pivotTarget: *mut *mut UChar,
2506        pivotLimit: *const UChar,
2507        reset: UBool,
2508        flush: UBool,
2509        pErrorCode: *mut UErrorCode,
2510    );
2511}
2512unsafe extern "C" {
2513    pub fn ucnv_convert_78(
2514        toConverterName: *const ::std::os::raw::c_char,
2515        fromConverterName: *const ::std::os::raw::c_char,
2516        target: *mut ::std::os::raw::c_char,
2517        targetCapacity: i32,
2518        source: *const ::std::os::raw::c_char,
2519        sourceLength: i32,
2520        pErrorCode: *mut UErrorCode,
2521    ) -> i32;
2522}
2523unsafe extern "C" {
2524    pub fn ucnv_toAlgorithmic_78(
2525        algorithmicType: UConverterType,
2526        cnv: *mut UConverter,
2527        target: *mut ::std::os::raw::c_char,
2528        targetCapacity: i32,
2529        source: *const ::std::os::raw::c_char,
2530        sourceLength: i32,
2531        pErrorCode: *mut UErrorCode,
2532    ) -> i32;
2533}
2534unsafe extern "C" {
2535    pub fn ucnv_fromAlgorithmic_78(
2536        cnv: *mut UConverter,
2537        algorithmicType: UConverterType,
2538        target: *mut ::std::os::raw::c_char,
2539        targetCapacity: i32,
2540        source: *const ::std::os::raw::c_char,
2541        sourceLength: i32,
2542        pErrorCode: *mut UErrorCode,
2543    ) -> i32;
2544}
2545unsafe extern "C" {
2546    pub fn ucnv_flushCache_78() -> i32;
2547}
2548unsafe extern "C" {
2549    pub fn ucnv_countAvailable_78() -> i32;
2550}
2551unsafe extern "C" {
2552    pub fn ucnv_getAvailableName_78(n: i32) -> *const ::std::os::raw::c_char;
2553}
2554unsafe extern "C" {
2555    pub fn ucnv_openAllNames_78(pErrorCode: *mut UErrorCode) -> *mut UEnumeration;
2556}
2557unsafe extern "C" {
2558    pub fn ucnv_countAliases_78(
2559        alias: *const ::std::os::raw::c_char,
2560        pErrorCode: *mut UErrorCode,
2561    ) -> u16;
2562}
2563unsafe extern "C" {
2564    pub fn ucnv_getAlias_78(
2565        alias: *const ::std::os::raw::c_char,
2566        n: u16,
2567        pErrorCode: *mut UErrorCode,
2568    ) -> *const ::std::os::raw::c_char;
2569}
2570unsafe extern "C" {
2571    pub fn ucnv_getAliases_78(
2572        alias: *const ::std::os::raw::c_char,
2573        aliases: *mut *const ::std::os::raw::c_char,
2574        pErrorCode: *mut UErrorCode,
2575    );
2576}
2577unsafe extern "C" {
2578    pub fn ucnv_openStandardNames_78(
2579        convName: *const ::std::os::raw::c_char,
2580        standard: *const ::std::os::raw::c_char,
2581        pErrorCode: *mut UErrorCode,
2582    ) -> *mut UEnumeration;
2583}
2584unsafe extern "C" {
2585    pub fn ucnv_countStandards_78() -> u16;
2586}
2587unsafe extern "C" {
2588    pub fn ucnv_getStandard_78(
2589        n: u16,
2590        pErrorCode: *mut UErrorCode,
2591    ) -> *const ::std::os::raw::c_char;
2592}
2593unsafe extern "C" {
2594    pub fn ucnv_getStandardName_78(
2595        name: *const ::std::os::raw::c_char,
2596        standard: *const ::std::os::raw::c_char,
2597        pErrorCode: *mut UErrorCode,
2598    ) -> *const ::std::os::raw::c_char;
2599}
2600unsafe extern "C" {
2601    pub fn ucnv_getCanonicalName_78(
2602        alias: *const ::std::os::raw::c_char,
2603        standard: *const ::std::os::raw::c_char,
2604        pErrorCode: *mut UErrorCode,
2605    ) -> *const ::std::os::raw::c_char;
2606}
2607unsafe extern "C" {
2608    pub fn ucnv_getDefaultName_78() -> *const ::std::os::raw::c_char;
2609}
2610unsafe extern "C" {
2611    pub fn ucnv_setDefaultName_78(name: *const ::std::os::raw::c_char);
2612}
2613unsafe extern "C" {
2614    pub fn ucnv_fixFileSeparator_78(cnv: *const UConverter, source: *mut UChar, sourceLen: i32);
2615}
2616unsafe extern "C" {
2617    pub fn ucnv_isAmbiguous_78(cnv: *const UConverter) -> UBool;
2618}
2619unsafe extern "C" {
2620    pub fn ucnv_setFallback_78(cnv: *mut UConverter, usesFallback: UBool);
2621}
2622unsafe extern "C" {
2623    pub fn ucnv_usesFallback_78(cnv: *const UConverter) -> UBool;
2624}
2625unsafe extern "C" {
2626    pub fn ucnv_detectUnicodeSignature_78(
2627        source: *const ::std::os::raw::c_char,
2628        sourceLength: i32,
2629        signatureLength: *mut i32,
2630        pErrorCode: *mut UErrorCode,
2631    ) -> *const ::std::os::raw::c_char;
2632}
2633unsafe extern "C" {
2634    pub fn ucnv_fromUCountPending_78(cnv: *const UConverter, status: *mut UErrorCode) -> i32;
2635}
2636unsafe extern "C" {
2637    pub fn ucnv_toUCountPending_78(cnv: *const UConverter, status: *mut UErrorCode) -> i32;
2638}
2639unsafe extern "C" {
2640    pub fn ucnv_isFixedWidth_78(cnv: *mut UConverter, status: *mut UErrorCode) -> UBool;
2641}
2642#[repr(u32)]
2643#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2644pub enum UCharIteratorOrigin {
2645    UITER_START = 0,
2646    UITER_CURRENT = 1,
2647    UITER_LIMIT = 2,
2648    UITER_ZERO = 3,
2649    UITER_LENGTH = 4,
2650}
2651pub type UCharIteratorGetIndex = ::std::option::Option<
2652    unsafe extern "C" fn(iter: *mut UCharIterator, origin: UCharIteratorOrigin) -> i32,
2653>;
2654pub type UCharIteratorMove = ::std::option::Option<
2655    unsafe extern "C" fn(iter: *mut UCharIterator, delta: i32, origin: UCharIteratorOrigin) -> i32,
2656>;
2657pub type UCharIteratorHasNext =
2658    ::std::option::Option<unsafe extern "C" fn(iter: *mut UCharIterator) -> UBool>;
2659pub type UCharIteratorHasPrevious =
2660    ::std::option::Option<unsafe extern "C" fn(iter: *mut UCharIterator) -> UBool>;
2661pub type UCharIteratorCurrent =
2662    ::std::option::Option<unsafe extern "C" fn(iter: *mut UCharIterator) -> UChar32>;
2663pub type UCharIteratorNext =
2664    ::std::option::Option<unsafe extern "C" fn(iter: *mut UCharIterator) -> UChar32>;
2665pub type UCharIteratorPrevious =
2666    ::std::option::Option<unsafe extern "C" fn(iter: *mut UCharIterator) -> UChar32>;
2667pub type UCharIteratorReserved =
2668    ::std::option::Option<unsafe extern "C" fn(iter: *mut UCharIterator, something: i32) -> i32>;
2669pub type UCharIteratorGetState =
2670    ::std::option::Option<unsafe extern "C" fn(iter: *const UCharIterator) -> u32>;
2671pub type UCharIteratorSetState = ::std::option::Option<
2672    unsafe extern "C" fn(iter: *mut UCharIterator, state: u32, pErrorCode: *mut UErrorCode),
2673>;
2674#[repr(C)]
2675#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq)]
2676pub struct UCharIterator {
2677    pub context: *const ::std::os::raw::c_void,
2678    pub length: i32,
2679    pub start: i32,
2680    pub index: i32,
2681    pub limit: i32,
2682    pub reservedField: i32,
2683    pub getIndex: UCharIteratorGetIndex,
2684    pub move_: UCharIteratorMove,
2685    pub hasNext: UCharIteratorHasNext,
2686    pub hasPrevious: UCharIteratorHasPrevious,
2687    pub current: UCharIteratorCurrent,
2688    pub next: UCharIteratorNext,
2689    pub previous: UCharIteratorPrevious,
2690    pub reservedFn: UCharIteratorReserved,
2691    pub getState: UCharIteratorGetState,
2692    pub setState: UCharIteratorSetState,
2693}
2694#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2695const _: () = {
2696    ["Size of UCharIterator"][::std::mem::size_of::<UCharIterator>() - 112usize];
2697    ["Alignment of UCharIterator"][::std::mem::align_of::<UCharIterator>() - 8usize];
2698    ["Offset of field: UCharIterator::context"]
2699        [::std::mem::offset_of!(UCharIterator, context) - 0usize];
2700    ["Offset of field: UCharIterator::length"]
2701        [::std::mem::offset_of!(UCharIterator, length) - 8usize];
2702    ["Offset of field: UCharIterator::start"]
2703        [::std::mem::offset_of!(UCharIterator, start) - 12usize];
2704    ["Offset of field: UCharIterator::index"]
2705        [::std::mem::offset_of!(UCharIterator, index) - 16usize];
2706    ["Offset of field: UCharIterator::limit"]
2707        [::std::mem::offset_of!(UCharIterator, limit) - 20usize];
2708    ["Offset of field: UCharIterator::reservedField"]
2709        [::std::mem::offset_of!(UCharIterator, reservedField) - 24usize];
2710    ["Offset of field: UCharIterator::getIndex"]
2711        [::std::mem::offset_of!(UCharIterator, getIndex) - 32usize];
2712    ["Offset of field: UCharIterator::move_"]
2713        [::std::mem::offset_of!(UCharIterator, move_) - 40usize];
2714    ["Offset of field: UCharIterator::hasNext"]
2715        [::std::mem::offset_of!(UCharIterator, hasNext) - 48usize];
2716    ["Offset of field: UCharIterator::hasPrevious"]
2717        [::std::mem::offset_of!(UCharIterator, hasPrevious) - 56usize];
2718    ["Offset of field: UCharIterator::current"]
2719        [::std::mem::offset_of!(UCharIterator, current) - 64usize];
2720    ["Offset of field: UCharIterator::next"][::std::mem::offset_of!(UCharIterator, next) - 72usize];
2721    ["Offset of field: UCharIterator::previous"]
2722        [::std::mem::offset_of!(UCharIterator, previous) - 80usize];
2723    ["Offset of field: UCharIterator::reservedFn"]
2724        [::std::mem::offset_of!(UCharIterator, reservedFn) - 88usize];
2725    ["Offset of field: UCharIterator::getState"]
2726        [::std::mem::offset_of!(UCharIterator, getState) - 96usize];
2727    ["Offset of field: UCharIterator::setState"]
2728        [::std::mem::offset_of!(UCharIterator, setState) - 104usize];
2729};
2730impl Default for UCharIterator {
2731    fn default() -> Self {
2732        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2733        unsafe {
2734            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2735            s.assume_init()
2736        }
2737    }
2738}
2739#[repr(u32)]
2740#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2741pub enum UNormalization2Mode {
2742    UNORM2_COMPOSE = 0,
2743    UNORM2_DECOMPOSE = 1,
2744    UNORM2_FCD = 2,
2745    UNORM2_COMPOSE_CONTIGUOUS = 3,
2746}
2747#[repr(u32)]
2748#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2749pub enum UNormalizationCheckResult {
2750    UNORM_NO = 0,
2751    UNORM_YES = 1,
2752    UNORM_MAYBE = 2,
2753}
2754#[repr(C)]
2755#[derive(Debug, Copy, Clone)]
2756pub struct UNormalizer2 {
2757    _unused: [u8; 0],
2758}
2759unsafe extern "C" {
2760    pub fn unorm2_getNFCInstance_78(pErrorCode: *mut UErrorCode) -> *const UNormalizer2;
2761}
2762unsafe extern "C" {
2763    pub fn unorm2_getNFDInstance_78(pErrorCode: *mut UErrorCode) -> *const UNormalizer2;
2764}
2765unsafe extern "C" {
2766    pub fn unorm2_getNFKCInstance_78(pErrorCode: *mut UErrorCode) -> *const UNormalizer2;
2767}
2768unsafe extern "C" {
2769    pub fn unorm2_getNFKDInstance_78(pErrorCode: *mut UErrorCode) -> *const UNormalizer2;
2770}
2771unsafe extern "C" {
2772    pub fn unorm2_getNFKCCasefoldInstance_78(pErrorCode: *mut UErrorCode) -> *const UNormalizer2;
2773}
2774unsafe extern "C" {
2775    pub fn unorm2_getNFKCSimpleCasefoldInstance_78(
2776        pErrorCode: *mut UErrorCode,
2777    ) -> *const UNormalizer2;
2778}
2779unsafe extern "C" {
2780    pub fn unorm2_getInstance_78(
2781        packageName: *const ::std::os::raw::c_char,
2782        name: *const ::std::os::raw::c_char,
2783        mode: UNormalization2Mode,
2784        pErrorCode: *mut UErrorCode,
2785    ) -> *const UNormalizer2;
2786}
2787unsafe extern "C" {
2788    pub fn unorm2_openFiltered_78(
2789        norm2: *const UNormalizer2,
2790        filterSet: *const USet,
2791        pErrorCode: *mut UErrorCode,
2792    ) -> *mut UNormalizer2;
2793}
2794unsafe extern "C" {
2795    pub fn unorm2_close_78(norm2: *mut UNormalizer2);
2796}
2797unsafe extern "C" {
2798    pub fn unorm2_normalize_78(
2799        norm2: *const UNormalizer2,
2800        src: *const UChar,
2801        length: i32,
2802        dest: *mut UChar,
2803        capacity: i32,
2804        pErrorCode: *mut UErrorCode,
2805    ) -> i32;
2806}
2807unsafe extern "C" {
2808    pub fn unorm2_normalizeSecondAndAppend_78(
2809        norm2: *const UNormalizer2,
2810        first: *mut UChar,
2811        firstLength: i32,
2812        firstCapacity: i32,
2813        second: *const UChar,
2814        secondLength: i32,
2815        pErrorCode: *mut UErrorCode,
2816    ) -> i32;
2817}
2818unsafe extern "C" {
2819    pub fn unorm2_append_78(
2820        norm2: *const UNormalizer2,
2821        first: *mut UChar,
2822        firstLength: i32,
2823        firstCapacity: i32,
2824        second: *const UChar,
2825        secondLength: i32,
2826        pErrorCode: *mut UErrorCode,
2827    ) -> i32;
2828}
2829unsafe extern "C" {
2830    pub fn unorm2_getDecomposition_78(
2831        norm2: *const UNormalizer2,
2832        c: UChar32,
2833        decomposition: *mut UChar,
2834        capacity: i32,
2835        pErrorCode: *mut UErrorCode,
2836    ) -> i32;
2837}
2838unsafe extern "C" {
2839    pub fn unorm2_getRawDecomposition_78(
2840        norm2: *const UNormalizer2,
2841        c: UChar32,
2842        decomposition: *mut UChar,
2843        capacity: i32,
2844        pErrorCode: *mut UErrorCode,
2845    ) -> i32;
2846}
2847unsafe extern "C" {
2848    pub fn unorm2_composePair_78(norm2: *const UNormalizer2, a: UChar32, b: UChar32) -> UChar32;
2849}
2850unsafe extern "C" {
2851    pub fn unorm2_getCombiningClass_78(norm2: *const UNormalizer2, c: UChar32) -> u8;
2852}
2853unsafe extern "C" {
2854    pub fn unorm2_isNormalized_78(
2855        norm2: *const UNormalizer2,
2856        s: *const UChar,
2857        length: i32,
2858        pErrorCode: *mut UErrorCode,
2859    ) -> UBool;
2860}
2861unsafe extern "C" {
2862    pub fn unorm2_quickCheck_78(
2863        norm2: *const UNormalizer2,
2864        s: *const UChar,
2865        length: i32,
2866        pErrorCode: *mut UErrorCode,
2867    ) -> UNormalizationCheckResult;
2868}
2869unsafe extern "C" {
2870    pub fn unorm2_spanQuickCheckYes_78(
2871        norm2: *const UNormalizer2,
2872        s: *const UChar,
2873        length: i32,
2874        pErrorCode: *mut UErrorCode,
2875    ) -> i32;
2876}
2877unsafe extern "C" {
2878    pub fn unorm2_hasBoundaryBefore_78(norm2: *const UNormalizer2, c: UChar32) -> UBool;
2879}
2880unsafe extern "C" {
2881    pub fn unorm2_hasBoundaryAfter_78(norm2: *const UNormalizer2, c: UChar32) -> UBool;
2882}
2883unsafe extern "C" {
2884    pub fn unorm2_isInert_78(norm2: *const UNormalizer2, c: UChar32) -> UBool;
2885}
2886impl UNormalizationMode {
2887    pub const UNORM_DEFAULT: UNormalizationMode = UNormalizationMode::UNORM_NFC;
2888}
2889#[repr(u32)]
2890#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2891pub enum UNormalizationMode {
2892    UNORM_NONE = 1,
2893    UNORM_NFD = 2,
2894    UNORM_NFKD = 3,
2895    UNORM_NFC = 4,
2896    UNORM_NFKC = 5,
2897    UNORM_FCD = 6,
2898    UNORM_MODE_COUNT = 7,
2899}
2900#[repr(C)]
2901#[derive(Debug, Copy, Clone)]
2902pub struct UCollator {
2903    _unused: [u8; 0],
2904}
2905#[repr(i32)]
2906#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2907pub enum UCollationResult {
2908    UCOL_EQUAL = 0,
2909    UCOL_GREATER = 1,
2910    UCOL_LESS = -1,
2911}
2912impl UColAttributeValue {
2913    pub const UCOL_DEFAULT_STRENGTH: UColAttributeValue = UColAttributeValue::UCOL_TERTIARY;
2914}
2915impl UColAttributeValue {
2916    pub const UCOL_QUATERNARY: UColAttributeValue = UColAttributeValue::UCOL_CE_STRENGTH_LIMIT;
2917}
2918impl UColAttributeValue {
2919    pub const UCOL_OFF: UColAttributeValue = UColAttributeValue::UCOL_STRENGTH_LIMIT;
2920}
2921#[repr(i32)]
2922#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2923pub enum UColAttributeValue {
2924    UCOL_DEFAULT = -1,
2925    UCOL_PRIMARY = 0,
2926    UCOL_SECONDARY = 1,
2927    UCOL_TERTIARY = 2,
2928    UCOL_CE_STRENGTH_LIMIT = 3,
2929    UCOL_IDENTICAL = 15,
2930    UCOL_STRENGTH_LIMIT = 16,
2931    UCOL_ON = 17,
2932    UCOL_SHIFTED = 20,
2933    UCOL_NON_IGNORABLE = 21,
2934    UCOL_LOWER_FIRST = 24,
2935    UCOL_UPPER_FIRST = 25,
2936    UCOL_ATTRIBUTE_VALUE_COUNT = 26,
2937}
2938impl UColReorderCode {
2939    pub const UCOL_REORDER_CODE_OTHERS: UColReorderCode = UColReorderCode::UCOL_REORDER_CODE_NONE;
2940}
2941impl UColReorderCode {
2942    pub const UCOL_REORDER_CODE_FIRST: UColReorderCode = UColReorderCode::UCOL_REORDER_CODE_SPACE;
2943}
2944#[repr(i32)]
2945#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2946pub enum UColReorderCode {
2947    UCOL_REORDER_CODE_DEFAULT = -1,
2948    UCOL_REORDER_CODE_NONE = 103,
2949    UCOL_REORDER_CODE_SPACE = 4096,
2950    UCOL_REORDER_CODE_PUNCTUATION = 4097,
2951    UCOL_REORDER_CODE_SYMBOL = 4098,
2952    UCOL_REORDER_CODE_CURRENCY = 4099,
2953    UCOL_REORDER_CODE_DIGIT = 4100,
2954    UCOL_REORDER_CODE_LIMIT = 4101,
2955}
2956pub use self::UColAttributeValue as UCollationStrength;
2957impl UColAttribute {
2958    pub const UCOL_DECOMPOSITION_MODE: UColAttribute = UColAttribute::UCOL_NORMALIZATION_MODE;
2959}
2960#[repr(u32)]
2961#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2962pub enum UColAttribute {
2963    UCOL_FRENCH_COLLATION = 0,
2964    UCOL_ALTERNATE_HANDLING = 1,
2965    UCOL_CASE_FIRST = 2,
2966    UCOL_CASE_LEVEL = 3,
2967    UCOL_NORMALIZATION_MODE = 4,
2968    UCOL_STRENGTH = 5,
2969    UCOL_HIRAGANA_QUATERNARY_MODE = 6,
2970    UCOL_NUMERIC_COLLATION = 7,
2971    UCOL_ATTRIBUTE_COUNT = 8,
2972}
2973#[repr(u32)]
2974#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
2975pub enum UColRuleOption {
2976    UCOL_TAILORING_ONLY = 0,
2977    UCOL_FULL_RULES = 1,
2978}
2979unsafe extern "C" {
2980    pub fn ucol_open_78(
2981        loc: *const ::std::os::raw::c_char,
2982        status: *mut UErrorCode,
2983    ) -> *mut UCollator;
2984}
2985unsafe extern "C" {
2986    pub fn ucol_openRules_78(
2987        rules: *const UChar,
2988        rulesLength: i32,
2989        normalizationMode: UColAttributeValue,
2990        strength: UCollationStrength,
2991        parseError: *mut UParseError,
2992        status: *mut UErrorCode,
2993    ) -> *mut UCollator;
2994}
2995unsafe extern "C" {
2996    pub fn ucol_openFromShortString_78(
2997        definition: *const ::std::os::raw::c_char,
2998        forceDefaults: UBool,
2999        parseError: *mut UParseError,
3000        status: *mut UErrorCode,
3001    ) -> *mut UCollator;
3002}
3003unsafe extern "C" {
3004    pub fn ucol_getContractions_78(
3005        coll: *const UCollator,
3006        conts: *mut USet,
3007        status: *mut UErrorCode,
3008    ) -> i32;
3009}
3010unsafe extern "C" {
3011    pub fn ucol_getContractionsAndExpansions_78(
3012        coll: *const UCollator,
3013        contractions: *mut USet,
3014        expansions: *mut USet,
3015        addPrefixes: UBool,
3016        status: *mut UErrorCode,
3017    );
3018}
3019unsafe extern "C" {
3020    pub fn ucol_close_78(coll: *mut UCollator);
3021}
3022unsafe extern "C" {
3023    pub fn ucol_strcoll_78(
3024        coll: *const UCollator,
3025        source: *const UChar,
3026        sourceLength: i32,
3027        target: *const UChar,
3028        targetLength: i32,
3029    ) -> UCollationResult;
3030}
3031unsafe extern "C" {
3032    pub fn ucol_strcollUTF8_78(
3033        coll: *const UCollator,
3034        source: *const ::std::os::raw::c_char,
3035        sourceLength: i32,
3036        target: *const ::std::os::raw::c_char,
3037        targetLength: i32,
3038        status: *mut UErrorCode,
3039    ) -> UCollationResult;
3040}
3041unsafe extern "C" {
3042    pub fn ucol_greater_78(
3043        coll: *const UCollator,
3044        source: *const UChar,
3045        sourceLength: i32,
3046        target: *const UChar,
3047        targetLength: i32,
3048    ) -> UBool;
3049}
3050unsafe extern "C" {
3051    pub fn ucol_greaterOrEqual_78(
3052        coll: *const UCollator,
3053        source: *const UChar,
3054        sourceLength: i32,
3055        target: *const UChar,
3056        targetLength: i32,
3057    ) -> UBool;
3058}
3059unsafe extern "C" {
3060    pub fn ucol_equal_78(
3061        coll: *const UCollator,
3062        source: *const UChar,
3063        sourceLength: i32,
3064        target: *const UChar,
3065        targetLength: i32,
3066    ) -> UBool;
3067}
3068unsafe extern "C" {
3069    pub fn ucol_strcollIter_78(
3070        coll: *const UCollator,
3071        sIter: *mut UCharIterator,
3072        tIter: *mut UCharIterator,
3073        status: *mut UErrorCode,
3074    ) -> UCollationResult;
3075}
3076unsafe extern "C" {
3077    pub fn ucol_getStrength_78(coll: *const UCollator) -> UCollationStrength;
3078}
3079unsafe extern "C" {
3080    pub fn ucol_setStrength_78(coll: *mut UCollator, strength: UCollationStrength);
3081}
3082unsafe extern "C" {
3083    pub fn ucol_getReorderCodes_78(
3084        coll: *const UCollator,
3085        dest: *mut i32,
3086        destCapacity: i32,
3087        pErrorCode: *mut UErrorCode,
3088    ) -> i32;
3089}
3090unsafe extern "C" {
3091    pub fn ucol_setReorderCodes_78(
3092        coll: *mut UCollator,
3093        reorderCodes: *const i32,
3094        reorderCodesLength: i32,
3095        pErrorCode: *mut UErrorCode,
3096    );
3097}
3098unsafe extern "C" {
3099    pub fn ucol_getEquivalentReorderCodes_78(
3100        reorderCode: i32,
3101        dest: *mut i32,
3102        destCapacity: i32,
3103        pErrorCode: *mut UErrorCode,
3104    ) -> i32;
3105}
3106unsafe extern "C" {
3107    pub fn ucol_getDisplayName_78(
3108        objLoc: *const ::std::os::raw::c_char,
3109        dispLoc: *const ::std::os::raw::c_char,
3110        result: *mut UChar,
3111        resultLength: i32,
3112        status: *mut UErrorCode,
3113    ) -> i32;
3114}
3115unsafe extern "C" {
3116    pub fn ucol_getAvailable_78(localeIndex: i32) -> *const ::std::os::raw::c_char;
3117}
3118unsafe extern "C" {
3119    pub fn ucol_countAvailable_78() -> i32;
3120}
3121unsafe extern "C" {
3122    pub fn ucol_openAvailableLocales_78(status: *mut UErrorCode) -> *mut UEnumeration;
3123}
3124unsafe extern "C" {
3125    pub fn ucol_getKeywords_78(status: *mut UErrorCode) -> *mut UEnumeration;
3126}
3127unsafe extern "C" {
3128    pub fn ucol_getKeywordValues_78(
3129        keyword: *const ::std::os::raw::c_char,
3130        status: *mut UErrorCode,
3131    ) -> *mut UEnumeration;
3132}
3133unsafe extern "C" {
3134    pub fn ucol_getKeywordValuesForLocale_78(
3135        key: *const ::std::os::raw::c_char,
3136        locale: *const ::std::os::raw::c_char,
3137        commonlyUsed: UBool,
3138        status: *mut UErrorCode,
3139    ) -> *mut UEnumeration;
3140}
3141unsafe extern "C" {
3142    pub fn ucol_getFunctionalEquivalent_78(
3143        result: *mut ::std::os::raw::c_char,
3144        resultCapacity: i32,
3145        keyword: *const ::std::os::raw::c_char,
3146        locale: *const ::std::os::raw::c_char,
3147        isAvailable: *mut UBool,
3148        status: *mut UErrorCode,
3149    ) -> i32;
3150}
3151unsafe extern "C" {
3152    pub fn ucol_getRules_78(coll: *const UCollator, length: *mut i32) -> *const UChar;
3153}
3154unsafe extern "C" {
3155    pub fn ucol_getShortDefinitionString_78(
3156        coll: *const UCollator,
3157        locale: *const ::std::os::raw::c_char,
3158        buffer: *mut ::std::os::raw::c_char,
3159        capacity: i32,
3160        status: *mut UErrorCode,
3161    ) -> i32;
3162}
3163unsafe extern "C" {
3164    pub fn ucol_normalizeShortDefinitionString_78(
3165        source: *const ::std::os::raw::c_char,
3166        destination: *mut ::std::os::raw::c_char,
3167        capacity: i32,
3168        parseError: *mut UParseError,
3169        status: *mut UErrorCode,
3170    ) -> i32;
3171}
3172unsafe extern "C" {
3173    pub fn ucol_getSortKey_78(
3174        coll: *const UCollator,
3175        source: *const UChar,
3176        sourceLength: i32,
3177        result: *mut u8,
3178        resultLength: i32,
3179    ) -> i32;
3180}
3181unsafe extern "C" {
3182    pub fn ucol_nextSortKeyPart_78(
3183        coll: *const UCollator,
3184        iter: *mut UCharIterator,
3185        state: *mut u32,
3186        dest: *mut u8,
3187        count: i32,
3188        status: *mut UErrorCode,
3189    ) -> i32;
3190}
3191#[repr(u32)]
3192#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3193pub enum UColBoundMode {
3194    UCOL_BOUND_LOWER = 0,
3195    UCOL_BOUND_UPPER = 1,
3196    UCOL_BOUND_UPPER_LONG = 2,
3197    UCOL_BOUND_VALUE_COUNT = 3,
3198}
3199unsafe extern "C" {
3200    pub fn ucol_getBound_78(
3201        source: *const u8,
3202        sourceLength: i32,
3203        boundType: UColBoundMode,
3204        noOfLevels: u32,
3205        result: *mut u8,
3206        resultLength: i32,
3207        status: *mut UErrorCode,
3208    ) -> i32;
3209}
3210unsafe extern "C" {
3211    pub fn ucol_getVersion_78(coll: *const UCollator, info: *mut u8);
3212}
3213unsafe extern "C" {
3214    pub fn ucol_getUCAVersion_78(coll: *const UCollator, info: *mut u8);
3215}
3216unsafe extern "C" {
3217    pub fn ucol_mergeSortkeys_78(
3218        src1: *const u8,
3219        src1Length: i32,
3220        src2: *const u8,
3221        src2Length: i32,
3222        dest: *mut u8,
3223        destCapacity: i32,
3224    ) -> i32;
3225}
3226unsafe extern "C" {
3227    pub fn ucol_setAttribute_78(
3228        coll: *mut UCollator,
3229        attr: UColAttribute,
3230        value: UColAttributeValue,
3231        status: *mut UErrorCode,
3232    );
3233}
3234unsafe extern "C" {
3235    pub fn ucol_getAttribute_78(
3236        coll: *const UCollator,
3237        attr: UColAttribute,
3238        status: *mut UErrorCode,
3239    ) -> UColAttributeValue;
3240}
3241unsafe extern "C" {
3242    pub fn ucol_setMaxVariable_78(
3243        coll: *mut UCollator,
3244        group: UColReorderCode,
3245        pErrorCode: *mut UErrorCode,
3246    );
3247}
3248unsafe extern "C" {
3249    pub fn ucol_getMaxVariable_78(coll: *const UCollator) -> UColReorderCode;
3250}
3251unsafe extern "C" {
3252    pub fn ucol_setVariableTop_78(
3253        coll: *mut UCollator,
3254        varTop: *const UChar,
3255        len: i32,
3256        status: *mut UErrorCode,
3257    ) -> u32;
3258}
3259unsafe extern "C" {
3260    pub fn ucol_getVariableTop_78(coll: *const UCollator, status: *mut UErrorCode) -> u32;
3261}
3262unsafe extern "C" {
3263    pub fn ucol_restoreVariableTop_78(coll: *mut UCollator, varTop: u32, status: *mut UErrorCode);
3264}
3265unsafe extern "C" {
3266    pub fn ucol_clone_78(coll: *const UCollator, status: *mut UErrorCode) -> *mut UCollator;
3267}
3268unsafe extern "C" {
3269    pub fn ucol_safeClone_78(
3270        coll: *const UCollator,
3271        stackBuffer: *mut ::std::os::raw::c_void,
3272        pBufferSize: *mut i32,
3273        status: *mut UErrorCode,
3274    ) -> *mut UCollator;
3275}
3276unsafe extern "C" {
3277    pub fn ucol_getRulesEx_78(
3278        coll: *const UCollator,
3279        delta: UColRuleOption,
3280        buffer: *mut UChar,
3281        bufferLen: i32,
3282    ) -> i32;
3283}
3284unsafe extern "C" {
3285    pub fn ucol_getLocale_78(
3286        coll: *const UCollator,
3287        type_: ULocDataLocaleType,
3288        status: *mut UErrorCode,
3289    ) -> *const ::std::os::raw::c_char;
3290}
3291unsafe extern "C" {
3292    pub fn ucol_getLocaleByType_78(
3293        coll: *const UCollator,
3294        type_: ULocDataLocaleType,
3295        status: *mut UErrorCode,
3296    ) -> *const ::std::os::raw::c_char;
3297}
3298unsafe extern "C" {
3299    pub fn ucol_getTailoredSet_78(coll: *const UCollator, status: *mut UErrorCode) -> *mut USet;
3300}
3301unsafe extern "C" {
3302    pub fn ucol_getUnsafeSet_78(
3303        coll: *const UCollator,
3304        unsafe_: *mut USet,
3305        status: *mut UErrorCode,
3306    ) -> i32;
3307}
3308unsafe extern "C" {
3309    pub fn ucol_prepareShortStringOpen_78(
3310        definition: *const ::std::os::raw::c_char,
3311        forceDefaults: UBool,
3312        parseError: *mut UParseError,
3313        status: *mut UErrorCode,
3314    );
3315}
3316unsafe extern "C" {
3317    pub fn ucol_cloneBinary_78(
3318        coll: *const UCollator,
3319        buffer: *mut u8,
3320        capacity: i32,
3321        status: *mut UErrorCode,
3322    ) -> i32;
3323}
3324unsafe extern "C" {
3325    pub fn ucol_openBinary_78(
3326        bin: *const u8,
3327        length: i32,
3328        base: *const UCollator,
3329        status: *mut UErrorCode,
3330    ) -> *mut UCollator;
3331}
3332#[repr(C)]
3333#[derive(Debug, Copy, Clone)]
3334pub struct UCharsetDetector {
3335    _unused: [u8; 0],
3336}
3337#[repr(C)]
3338#[derive(Debug, Copy, Clone)]
3339pub struct UCharsetMatch {
3340    _unused: [u8; 0],
3341}
3342unsafe extern "C" {
3343    pub fn ucsdet_open_78(status: *mut UErrorCode) -> *mut UCharsetDetector;
3344}
3345unsafe extern "C" {
3346    pub fn ucsdet_close_78(ucsd: *mut UCharsetDetector);
3347}
3348unsafe extern "C" {
3349    pub fn ucsdet_setText_78(
3350        ucsd: *mut UCharsetDetector,
3351        textIn: *const ::std::os::raw::c_char,
3352        len: i32,
3353        status: *mut UErrorCode,
3354    );
3355}
3356unsafe extern "C" {
3357    pub fn ucsdet_setDeclaredEncoding_78(
3358        ucsd: *mut UCharsetDetector,
3359        encoding: *const ::std::os::raw::c_char,
3360        length: i32,
3361        status: *mut UErrorCode,
3362    );
3363}
3364unsafe extern "C" {
3365    pub fn ucsdet_detect_78(
3366        ucsd: *mut UCharsetDetector,
3367        status: *mut UErrorCode,
3368    ) -> *const UCharsetMatch;
3369}
3370unsafe extern "C" {
3371    pub fn ucsdet_detectAll_78(
3372        ucsd: *mut UCharsetDetector,
3373        matchesFound: *mut i32,
3374        status: *mut UErrorCode,
3375    ) -> *mut *const UCharsetMatch;
3376}
3377unsafe extern "C" {
3378    pub fn ucsdet_getName_78(
3379        ucsm: *const UCharsetMatch,
3380        status: *mut UErrorCode,
3381    ) -> *const ::std::os::raw::c_char;
3382}
3383unsafe extern "C" {
3384    pub fn ucsdet_getConfidence_78(ucsm: *const UCharsetMatch, status: *mut UErrorCode) -> i32;
3385}
3386unsafe extern "C" {
3387    pub fn ucsdet_getLanguage_78(
3388        ucsm: *const UCharsetMatch,
3389        status: *mut UErrorCode,
3390    ) -> *const ::std::os::raw::c_char;
3391}
3392unsafe extern "C" {
3393    pub fn ucsdet_getUChars_78(
3394        ucsm: *const UCharsetMatch,
3395        buf: *mut UChar,
3396        cap: i32,
3397        status: *mut UErrorCode,
3398    ) -> i32;
3399}
3400unsafe extern "C" {
3401    pub fn ucsdet_getAllDetectableCharsets_78(
3402        ucsd: *const UCharsetDetector,
3403        status: *mut UErrorCode,
3404    ) -> *mut UEnumeration;
3405}
3406unsafe extern "C" {
3407    pub fn ucsdet_isInputFilterEnabled_78(ucsd: *const UCharsetDetector) -> UBool;
3408}
3409unsafe extern "C" {
3410    pub fn ucsdet_enableInputFilter_78(ucsd: *mut UCharsetDetector, filter: UBool) -> UBool;
3411}
3412unsafe extern "C" {
3413    pub fn ucsdet_getDetectableCharsets_78(
3414        ucsd: *const UCharsetDetector,
3415        status: *mut UErrorCode,
3416    ) -> *mut UEnumeration;
3417}
3418unsafe extern "C" {
3419    pub fn ucsdet_setDetectableCharset_78(
3420        ucsd: *mut UCharsetDetector,
3421        encoding: *const ::std::os::raw::c_char,
3422        enabled: UBool,
3423        status: *mut UErrorCode,
3424    );
3425}
3426#[repr(C)]
3427#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, PartialEq)]
3428pub struct UFieldPosition {
3429    pub field: i32,
3430    pub beginIndex: i32,
3431    pub endIndex: i32,
3432}
3433#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3434const _: () = {
3435    ["Size of UFieldPosition"][::std::mem::size_of::<UFieldPosition>() - 12usize];
3436    ["Alignment of UFieldPosition"][::std::mem::align_of::<UFieldPosition>() - 4usize];
3437    ["Offset of field: UFieldPosition::field"]
3438        [::std::mem::offset_of!(UFieldPosition, field) - 0usize];
3439    ["Offset of field: UFieldPosition::beginIndex"]
3440        [::std::mem::offset_of!(UFieldPosition, beginIndex) - 4usize];
3441    ["Offset of field: UFieldPosition::endIndex"]
3442        [::std::mem::offset_of!(UFieldPosition, endIndex) - 8usize];
3443};
3444#[repr(u32)]
3445#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3446pub enum UFormattableType {
3447    UFMT_DATE = 0,
3448    UFMT_DOUBLE = 1,
3449    UFMT_LONG = 2,
3450    UFMT_STRING = 3,
3451    UFMT_ARRAY = 4,
3452    UFMT_INT64 = 5,
3453    UFMT_OBJECT = 6,
3454    UFMT_COUNT = 7,
3455}
3456pub type UFormattable = *mut ::std::os::raw::c_void;
3457unsafe extern "C" {
3458    pub fn ufmt_open_78(status: *mut UErrorCode) -> *mut UFormattable;
3459}
3460unsafe extern "C" {
3461    pub fn ufmt_close_78(fmt: *mut UFormattable);
3462}
3463unsafe extern "C" {
3464    pub fn ufmt_getType_78(fmt: *const UFormattable, status: *mut UErrorCode) -> UFormattableType;
3465}
3466unsafe extern "C" {
3467    pub fn ufmt_isNumeric_78(fmt: *const UFormattable) -> UBool;
3468}
3469unsafe extern "C" {
3470    pub fn ufmt_getDate_78(fmt: *const UFormattable, status: *mut UErrorCode) -> UDate;
3471}
3472unsafe extern "C" {
3473    pub fn ufmt_getDouble_78(fmt: *mut UFormattable, status: *mut UErrorCode) -> f64;
3474}
3475unsafe extern "C" {
3476    pub fn ufmt_getLong_78(fmt: *mut UFormattable, status: *mut UErrorCode) -> i32;
3477}
3478unsafe extern "C" {
3479    pub fn ufmt_getInt64_78(fmt: *mut UFormattable, status: *mut UErrorCode) -> i64;
3480}
3481unsafe extern "C" {
3482    pub fn ufmt_getObject_78(
3483        fmt: *const UFormattable,
3484        status: *mut UErrorCode,
3485    ) -> *const ::std::os::raw::c_void;
3486}
3487unsafe extern "C" {
3488    pub fn ufmt_getUChars_78(
3489        fmt: *mut UFormattable,
3490        len: *mut i32,
3491        status: *mut UErrorCode,
3492    ) -> *const UChar;
3493}
3494unsafe extern "C" {
3495    pub fn ufmt_getArrayLength_78(fmt: *const UFormattable, status: *mut UErrorCode) -> i32;
3496}
3497unsafe extern "C" {
3498    pub fn ufmt_getArrayItemByIndex_78(
3499        fmt: *mut UFormattable,
3500        n: i32,
3501        status: *mut UErrorCode,
3502    ) -> *mut UFormattable;
3503}
3504unsafe extern "C" {
3505    pub fn ufmt_getDecNumChars_78(
3506        fmt: *mut UFormattable,
3507        len: *mut i32,
3508        status: *mut UErrorCode,
3509    ) -> *const ::std::os::raw::c_char;
3510}
3511#[repr(u32)]
3512#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3513pub enum UDisplayContextType {
3514    UDISPCTX_TYPE_DIALECT_HANDLING = 0,
3515    UDISPCTX_TYPE_CAPITALIZATION = 1,
3516    UDISPCTX_TYPE_DISPLAY_LENGTH = 2,
3517    UDISPCTX_TYPE_SUBSTITUTE_HANDLING = 3,
3518}
3519#[repr(u32)]
3520#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3521pub enum UDisplayContext {
3522    UDISPCTX_STANDARD_NAMES = 0,
3523    UDISPCTX_DIALECT_NAMES = 1,
3524    UDISPCTX_CAPITALIZATION_NONE = 256,
3525    UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE = 257,
3526    UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE = 258,
3527    UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU = 259,
3528    UDISPCTX_CAPITALIZATION_FOR_STANDALONE = 260,
3529    UDISPCTX_LENGTH_FULL = 512,
3530    UDISPCTX_LENGTH_SHORT = 513,
3531    UDISPCTX_SUBSTITUTE = 768,
3532    UDISPCTX_NO_SUBSTITUTE = 769,
3533}
3534#[repr(C)]
3535#[derive(Debug, Copy, Clone)]
3536pub struct UFieldPositionIterator {
3537    _unused: [u8; 0],
3538}
3539unsafe extern "C" {
3540    pub fn ufieldpositer_open_78(status: *mut UErrorCode) -> *mut UFieldPositionIterator;
3541}
3542unsafe extern "C" {
3543    pub fn ufieldpositer_close_78(fpositer: *mut UFieldPositionIterator);
3544}
3545unsafe extern "C" {
3546    pub fn ufieldpositer_next_78(
3547        fpositer: *mut UFieldPositionIterator,
3548        beginIndex: *mut i32,
3549        endIndex: *mut i32,
3550    ) -> i32;
3551}
3552pub type UNumberFormat = *mut ::std::os::raw::c_void;
3553impl UNumberFormatStyle {
3554    pub const UNUM_DEFAULT: UNumberFormatStyle = UNumberFormatStyle::UNUM_DECIMAL;
3555}
3556impl UNumberFormatStyle {
3557    pub const UNUM_IGNORE: UNumberFormatStyle = UNumberFormatStyle::UNUM_PATTERN_DECIMAL;
3558}
3559#[repr(u32)]
3560#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3561pub enum UNumberFormatStyle {
3562    UNUM_PATTERN_DECIMAL = 0,
3563    UNUM_DECIMAL = 1,
3564    UNUM_CURRENCY = 2,
3565    UNUM_PERCENT = 3,
3566    UNUM_SCIENTIFIC = 4,
3567    UNUM_SPELLOUT = 5,
3568    UNUM_ORDINAL = 6,
3569    UNUM_DURATION = 7,
3570    UNUM_NUMBERING_SYSTEM = 8,
3571    UNUM_PATTERN_RULEBASED = 9,
3572    UNUM_CURRENCY_ISO = 10,
3573    UNUM_CURRENCY_PLURAL = 11,
3574    UNUM_CURRENCY_ACCOUNTING = 12,
3575    UNUM_CASH_CURRENCY = 13,
3576    UNUM_DECIMAL_COMPACT_SHORT = 14,
3577    UNUM_DECIMAL_COMPACT_LONG = 15,
3578    UNUM_CURRENCY_STANDARD = 16,
3579    UNUM_FORMAT_STYLE_COUNT = 17,
3580}
3581unsafe extern "C" {
3582    pub fn unum_open_78(
3583        style: UNumberFormatStyle,
3584        pattern: *const UChar,
3585        patternLength: i32,
3586        locale: *const ::std::os::raw::c_char,
3587        parseErr: *mut UParseError,
3588        status: *mut UErrorCode,
3589    ) -> *mut UNumberFormat;
3590}
3591unsafe extern "C" {
3592    pub fn unum_close_78(fmt: *mut UNumberFormat);
3593}
3594unsafe extern "C" {
3595    pub fn unum_clone_78(fmt: *const UNumberFormat, status: *mut UErrorCode) -> *mut UNumberFormat;
3596}
3597unsafe extern "C" {
3598    pub fn unum_format_78(
3599        fmt: *const UNumberFormat,
3600        number: i32,
3601        result: *mut UChar,
3602        resultLength: i32,
3603        pos: *mut UFieldPosition,
3604        status: *mut UErrorCode,
3605    ) -> i32;
3606}
3607unsafe extern "C" {
3608    pub fn unum_formatInt64_78(
3609        fmt: *const UNumberFormat,
3610        number: i64,
3611        result: *mut UChar,
3612        resultLength: i32,
3613        pos: *mut UFieldPosition,
3614        status: *mut UErrorCode,
3615    ) -> i32;
3616}
3617unsafe extern "C" {
3618    pub fn unum_formatDouble_78(
3619        fmt: *const UNumberFormat,
3620        number: f64,
3621        result: *mut UChar,
3622        resultLength: i32,
3623        pos: *mut UFieldPosition,
3624        status: *mut UErrorCode,
3625    ) -> i32;
3626}
3627unsafe extern "C" {
3628    pub fn unum_formatDoubleForFields_78(
3629        format: *const UNumberFormat,
3630        number: f64,
3631        result: *mut UChar,
3632        resultLength: i32,
3633        fpositer: *mut UFieldPositionIterator,
3634        status: *mut UErrorCode,
3635    ) -> i32;
3636}
3637unsafe extern "C" {
3638    pub fn unum_formatDecimal_78(
3639        fmt: *const UNumberFormat,
3640        number: *const ::std::os::raw::c_char,
3641        length: i32,
3642        result: *mut UChar,
3643        resultLength: i32,
3644        pos: *mut UFieldPosition,
3645        status: *mut UErrorCode,
3646    ) -> i32;
3647}
3648unsafe extern "C" {
3649    pub fn unum_formatDoubleCurrency_78(
3650        fmt: *const UNumberFormat,
3651        number: f64,
3652        currency: *mut UChar,
3653        result: *mut UChar,
3654        resultLength: i32,
3655        pos: *mut UFieldPosition,
3656        status: *mut UErrorCode,
3657    ) -> i32;
3658}
3659unsafe extern "C" {
3660    pub fn unum_formatUFormattable_78(
3661        fmt: *const UNumberFormat,
3662        number: *const UFormattable,
3663        result: *mut UChar,
3664        resultLength: i32,
3665        pos: *mut UFieldPosition,
3666        status: *mut UErrorCode,
3667    ) -> i32;
3668}
3669unsafe extern "C" {
3670    pub fn unum_parse_78(
3671        fmt: *const UNumberFormat,
3672        text: *const UChar,
3673        textLength: i32,
3674        parsePos: *mut i32,
3675        status: *mut UErrorCode,
3676    ) -> i32;
3677}
3678unsafe extern "C" {
3679    pub fn unum_parseInt64_78(
3680        fmt: *const UNumberFormat,
3681        text: *const UChar,
3682        textLength: i32,
3683        parsePos: *mut i32,
3684        status: *mut UErrorCode,
3685    ) -> i64;
3686}
3687unsafe extern "C" {
3688    pub fn unum_parseDouble_78(
3689        fmt: *const UNumberFormat,
3690        text: *const UChar,
3691        textLength: i32,
3692        parsePos: *mut i32,
3693        status: *mut UErrorCode,
3694    ) -> f64;
3695}
3696unsafe extern "C" {
3697    pub fn unum_parseDecimal_78(
3698        fmt: *const UNumberFormat,
3699        text: *const UChar,
3700        textLength: i32,
3701        parsePos: *mut i32,
3702        outBuf: *mut ::std::os::raw::c_char,
3703        outBufLength: i32,
3704        status: *mut UErrorCode,
3705    ) -> i32;
3706}
3707unsafe extern "C" {
3708    pub fn unum_parseDoubleCurrency_78(
3709        fmt: *const UNumberFormat,
3710        text: *const UChar,
3711        textLength: i32,
3712        parsePos: *mut i32,
3713        currency: *mut UChar,
3714        status: *mut UErrorCode,
3715    ) -> f64;
3716}
3717unsafe extern "C" {
3718    pub fn unum_parseToUFormattable_78(
3719        fmt: *const UNumberFormat,
3720        result: *mut UFormattable,
3721        text: *const UChar,
3722        textLength: i32,
3723        parsePos: *mut i32,
3724        status: *mut UErrorCode,
3725    ) -> *mut UFormattable;
3726}
3727unsafe extern "C" {
3728    pub fn unum_applyPattern_78(
3729        format: *mut UNumberFormat,
3730        localized: UBool,
3731        pattern: *const UChar,
3732        patternLength: i32,
3733        parseError: *mut UParseError,
3734        status: *mut UErrorCode,
3735    );
3736}
3737unsafe extern "C" {
3738    pub fn unum_getAvailable_78(localeIndex: i32) -> *const ::std::os::raw::c_char;
3739}
3740unsafe extern "C" {
3741    pub fn unum_countAvailable_78() -> i32;
3742}
3743#[repr(u32)]
3744#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3745pub enum UNumberFormatAttribute {
3746    UNUM_PARSE_INT_ONLY = 0,
3747    UNUM_GROUPING_USED = 1,
3748    UNUM_DECIMAL_ALWAYS_SHOWN = 2,
3749    UNUM_MAX_INTEGER_DIGITS = 3,
3750    UNUM_MIN_INTEGER_DIGITS = 4,
3751    UNUM_INTEGER_DIGITS = 5,
3752    UNUM_MAX_FRACTION_DIGITS = 6,
3753    UNUM_MIN_FRACTION_DIGITS = 7,
3754    UNUM_FRACTION_DIGITS = 8,
3755    UNUM_MULTIPLIER = 9,
3756    UNUM_GROUPING_SIZE = 10,
3757    UNUM_ROUNDING_MODE = 11,
3758    UNUM_ROUNDING_INCREMENT = 12,
3759    UNUM_FORMAT_WIDTH = 13,
3760    UNUM_PADDING_POSITION = 14,
3761    UNUM_SECONDARY_GROUPING_SIZE = 15,
3762    UNUM_SIGNIFICANT_DIGITS_USED = 16,
3763    UNUM_MIN_SIGNIFICANT_DIGITS = 17,
3764    UNUM_MAX_SIGNIFICANT_DIGITS = 18,
3765    UNUM_LENIENT_PARSE = 19,
3766    UNUM_PARSE_ALL_INPUT = 20,
3767    UNUM_SCALE = 21,
3768    UNUM_MINIMUM_GROUPING_DIGITS = 22,
3769    UNUM_CURRENCY_USAGE = 23,
3770    UNUM_MAX_NONBOOLEAN_ATTRIBUTE = 4095,
3771    UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS = 4096,
3772    UNUM_PARSE_NO_EXPONENT = 4097,
3773    UNUM_PARSE_DECIMAL_MARK_REQUIRED = 4098,
3774    UNUM_PARSE_CASE_SENSITIVE = 4099,
3775    UNUM_SIGN_ALWAYS_SHOWN = 4100,
3776    UNUM_LIMIT_BOOLEAN_ATTRIBUTE = 4101,
3777}
3778unsafe extern "C" {
3779    pub fn unum_hasAttribute_78(fmt: *const UNumberFormat, attr: UNumberFormatAttribute) -> bool;
3780}
3781unsafe extern "C" {
3782    pub fn unum_getAttribute_78(fmt: *const UNumberFormat, attr: UNumberFormatAttribute) -> i32;
3783}
3784unsafe extern "C" {
3785    pub fn unum_setAttribute_78(
3786        fmt: *mut UNumberFormat,
3787        attr: UNumberFormatAttribute,
3788        newValue: i32,
3789    );
3790}
3791unsafe extern "C" {
3792    pub fn unum_getDoubleAttribute_78(
3793        fmt: *const UNumberFormat,
3794        attr: UNumberFormatAttribute,
3795    ) -> f64;
3796}
3797unsafe extern "C" {
3798    pub fn unum_setDoubleAttribute_78(
3799        fmt: *mut UNumberFormat,
3800        attr: UNumberFormatAttribute,
3801        newValue: f64,
3802    );
3803}
3804#[repr(u32)]
3805#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3806pub enum UNumberFormatTextAttribute {
3807    UNUM_POSITIVE_PREFIX = 0,
3808    UNUM_POSITIVE_SUFFIX = 1,
3809    UNUM_NEGATIVE_PREFIX = 2,
3810    UNUM_NEGATIVE_SUFFIX = 3,
3811    UNUM_PADDING_CHARACTER = 4,
3812    UNUM_CURRENCY_CODE = 5,
3813    UNUM_DEFAULT_RULESET = 6,
3814    UNUM_PUBLIC_RULESETS = 7,
3815}
3816unsafe extern "C" {
3817    pub fn unum_getTextAttribute_78(
3818        fmt: *const UNumberFormat,
3819        tag: UNumberFormatTextAttribute,
3820        result: *mut UChar,
3821        resultLength: i32,
3822        status: *mut UErrorCode,
3823    ) -> i32;
3824}
3825unsafe extern "C" {
3826    pub fn unum_setTextAttribute_78(
3827        fmt: *mut UNumberFormat,
3828        tag: UNumberFormatTextAttribute,
3829        newValue: *const UChar,
3830        newValueLength: i32,
3831        status: *mut UErrorCode,
3832    );
3833}
3834unsafe extern "C" {
3835    pub fn unum_toPattern_78(
3836        fmt: *const UNumberFormat,
3837        isPatternLocalized: UBool,
3838        result: *mut UChar,
3839        resultLength: i32,
3840        status: *mut UErrorCode,
3841    ) -> i32;
3842}
3843#[repr(u32)]
3844#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3845pub enum UNumberFormatSymbol {
3846    UNUM_DECIMAL_SEPARATOR_SYMBOL = 0,
3847    UNUM_GROUPING_SEPARATOR_SYMBOL = 1,
3848    UNUM_PATTERN_SEPARATOR_SYMBOL = 2,
3849    UNUM_PERCENT_SYMBOL = 3,
3850    UNUM_ZERO_DIGIT_SYMBOL = 4,
3851    UNUM_DIGIT_SYMBOL = 5,
3852    UNUM_MINUS_SIGN_SYMBOL = 6,
3853    UNUM_PLUS_SIGN_SYMBOL = 7,
3854    UNUM_CURRENCY_SYMBOL = 8,
3855    UNUM_INTL_CURRENCY_SYMBOL = 9,
3856    UNUM_MONETARY_SEPARATOR_SYMBOL = 10,
3857    UNUM_EXPONENTIAL_SYMBOL = 11,
3858    UNUM_PERMILL_SYMBOL = 12,
3859    UNUM_PAD_ESCAPE_SYMBOL = 13,
3860    UNUM_INFINITY_SYMBOL = 14,
3861    UNUM_NAN_SYMBOL = 15,
3862    UNUM_SIGNIFICANT_DIGIT_SYMBOL = 16,
3863    UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL = 17,
3864    UNUM_ONE_DIGIT_SYMBOL = 18,
3865    UNUM_TWO_DIGIT_SYMBOL = 19,
3866    UNUM_THREE_DIGIT_SYMBOL = 20,
3867    UNUM_FOUR_DIGIT_SYMBOL = 21,
3868    UNUM_FIVE_DIGIT_SYMBOL = 22,
3869    UNUM_SIX_DIGIT_SYMBOL = 23,
3870    UNUM_SEVEN_DIGIT_SYMBOL = 24,
3871    UNUM_EIGHT_DIGIT_SYMBOL = 25,
3872    UNUM_NINE_DIGIT_SYMBOL = 26,
3873    UNUM_EXPONENT_MULTIPLICATION_SYMBOL = 27,
3874    UNUM_APPROXIMATELY_SIGN_SYMBOL = 28,
3875    UNUM_FORMAT_SYMBOL_COUNT = 29,
3876}
3877unsafe extern "C" {
3878    pub fn unum_getSymbol_78(
3879        fmt: *const UNumberFormat,
3880        symbol: UNumberFormatSymbol,
3881        buffer: *mut UChar,
3882        size: i32,
3883        status: *mut UErrorCode,
3884    ) -> i32;
3885}
3886unsafe extern "C" {
3887    pub fn unum_setSymbol_78(
3888        fmt: *mut UNumberFormat,
3889        symbol: UNumberFormatSymbol,
3890        value: *const UChar,
3891        length: i32,
3892        status: *mut UErrorCode,
3893    );
3894}
3895unsafe extern "C" {
3896    pub fn unum_getLocaleByType_78(
3897        fmt: *const UNumberFormat,
3898        type_: ULocDataLocaleType,
3899        status: *mut UErrorCode,
3900    ) -> *const ::std::os::raw::c_char;
3901}
3902unsafe extern "C" {
3903    pub fn unum_setContext_78(
3904        fmt: *mut UNumberFormat,
3905        value: UDisplayContext,
3906        status: *mut UErrorCode,
3907    );
3908}
3909unsafe extern "C" {
3910    pub fn unum_getContext_78(
3911        fmt: *const UNumberFormat,
3912        type_: UDisplayContextType,
3913        status: *mut UErrorCode,
3914    ) -> UDisplayContext;
3915}
3916pub type UDateFormat = *mut ::std::os::raw::c_void;
3917impl UDateFormatStyle {
3918    pub const UDAT_DEFAULT: UDateFormatStyle = UDateFormatStyle::UDAT_MEDIUM;
3919}
3920impl UDateFormatStyle {
3921    pub const UDAT_FULL_RELATIVE: UDateFormatStyle = UDateFormatStyle::UDAT_RELATIVE;
3922}
3923impl UDateFormatStyle {
3924    pub const UDAT_IGNORE: UDateFormatStyle = UDateFormatStyle::UDAT_PATTERN;
3925}
3926#[repr(i32)]
3927#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3928pub enum UDateFormatStyle {
3929    UDAT_FULL = 0,
3930    UDAT_LONG = 1,
3931    UDAT_MEDIUM = 2,
3932    UDAT_SHORT = 3,
3933    UDAT_RELATIVE = 128,
3934    UDAT_LONG_RELATIVE = 129,
3935    UDAT_MEDIUM_RELATIVE = 130,
3936    UDAT_SHORT_RELATIVE = 131,
3937    UDAT_NONE = -1,
3938    UDAT_PATTERN = -2,
3939}
3940#[repr(u32)]
3941#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
3942pub enum UDateFormatField {
3943    UDAT_ERA_FIELD = 0,
3944    UDAT_YEAR_FIELD = 1,
3945    UDAT_MONTH_FIELD = 2,
3946    UDAT_DATE_FIELD = 3,
3947    UDAT_HOUR_OF_DAY1_FIELD = 4,
3948    UDAT_HOUR_OF_DAY0_FIELD = 5,
3949    UDAT_MINUTE_FIELD = 6,
3950    UDAT_SECOND_FIELD = 7,
3951    UDAT_FRACTIONAL_SECOND_FIELD = 8,
3952    UDAT_DAY_OF_WEEK_FIELD = 9,
3953    UDAT_DAY_OF_YEAR_FIELD = 10,
3954    UDAT_DAY_OF_WEEK_IN_MONTH_FIELD = 11,
3955    UDAT_WEEK_OF_YEAR_FIELD = 12,
3956    UDAT_WEEK_OF_MONTH_FIELD = 13,
3957    UDAT_AM_PM_FIELD = 14,
3958    UDAT_HOUR1_FIELD = 15,
3959    UDAT_HOUR0_FIELD = 16,
3960    UDAT_TIMEZONE_FIELD = 17,
3961    UDAT_YEAR_WOY_FIELD = 18,
3962    UDAT_DOW_LOCAL_FIELD = 19,
3963    UDAT_EXTENDED_YEAR_FIELD = 20,
3964    UDAT_JULIAN_DAY_FIELD = 21,
3965    UDAT_MILLISECONDS_IN_DAY_FIELD = 22,
3966    UDAT_TIMEZONE_RFC_FIELD = 23,
3967    UDAT_TIMEZONE_GENERIC_FIELD = 24,
3968    UDAT_STANDALONE_DAY_FIELD = 25,
3969    UDAT_STANDALONE_MONTH_FIELD = 26,
3970    UDAT_QUARTER_FIELD = 27,
3971    UDAT_STANDALONE_QUARTER_FIELD = 28,
3972    UDAT_TIMEZONE_SPECIAL_FIELD = 29,
3973    UDAT_YEAR_NAME_FIELD = 30,
3974    UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD = 31,
3975    UDAT_TIMEZONE_ISO_FIELD = 32,
3976    UDAT_TIMEZONE_ISO_LOCAL_FIELD = 33,
3977    UDAT_RELATED_YEAR_FIELD = 34,
3978    UDAT_AM_PM_MIDNIGHT_NOON_FIELD = 35,
3979    UDAT_FLEXIBLE_DAY_PERIOD_FIELD = 36,
3980    UDAT_TIME_SEPARATOR_FIELD = 37,
3981    UDAT_FIELD_COUNT = 38,
3982}
3983unsafe extern "C" {
3984    pub fn udat_toCalendarDateField_78(field: UDateFormatField) -> UCalendarDateFields;
3985}
3986unsafe extern "C" {
3987    pub fn udat_open_78(
3988        timeStyle: UDateFormatStyle,
3989        dateStyle: UDateFormatStyle,
3990        locale: *const ::std::os::raw::c_char,
3991        tzID: *const UChar,
3992        tzIDLength: i32,
3993        pattern: *const UChar,
3994        patternLength: i32,
3995        status: *mut UErrorCode,
3996    ) -> *mut UDateFormat;
3997}
3998unsafe extern "C" {
3999    pub fn udat_close_78(format: *mut UDateFormat);
4000}
4001#[repr(u32)]
4002#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4003pub enum UDateFormatBooleanAttribute {
4004    UDAT_PARSE_ALLOW_WHITESPACE = 0,
4005    UDAT_PARSE_ALLOW_NUMERIC = 1,
4006    UDAT_PARSE_PARTIAL_LITERAL_MATCH = 2,
4007    UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH = 3,
4008    UDAT_BOOLEAN_ATTRIBUTE_COUNT = 4,
4009}
4010unsafe extern "C" {
4011    pub fn udat_getBooleanAttribute_78(
4012        fmt: *const UDateFormat,
4013        attr: UDateFormatBooleanAttribute,
4014        status: *mut UErrorCode,
4015    ) -> UBool;
4016}
4017unsafe extern "C" {
4018    pub fn udat_setBooleanAttribute_78(
4019        fmt: *mut UDateFormat,
4020        attr: UDateFormatBooleanAttribute,
4021        newValue: UBool,
4022        status: *mut UErrorCode,
4023    );
4024}
4025#[repr(u32)]
4026#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4027pub enum UDateFormatHourCycle {
4028    UDAT_HOUR_CYCLE_11 = 0,
4029    UDAT_HOUR_CYCLE_12 = 1,
4030    UDAT_HOUR_CYCLE_23 = 2,
4031    UDAT_HOUR_CYCLE_24 = 3,
4032}
4033unsafe extern "C" {
4034    pub fn udat_clone_78(fmt: *const UDateFormat, status: *mut UErrorCode) -> *mut UDateFormat;
4035}
4036unsafe extern "C" {
4037    pub fn udat_format_78(
4038        format: *const UDateFormat,
4039        dateToFormat: UDate,
4040        result: *mut UChar,
4041        resultLength: i32,
4042        position: *mut UFieldPosition,
4043        status: *mut UErrorCode,
4044    ) -> i32;
4045}
4046unsafe extern "C" {
4047    pub fn udat_formatCalendar_78(
4048        format: *const UDateFormat,
4049        calendar: *mut UCalendar,
4050        result: *mut UChar,
4051        capacity: i32,
4052        position: *mut UFieldPosition,
4053        status: *mut UErrorCode,
4054    ) -> i32;
4055}
4056unsafe extern "C" {
4057    pub fn udat_formatForFields_78(
4058        format: *const UDateFormat,
4059        dateToFormat: UDate,
4060        result: *mut UChar,
4061        resultLength: i32,
4062        fpositer: *mut UFieldPositionIterator,
4063        status: *mut UErrorCode,
4064    ) -> i32;
4065}
4066unsafe extern "C" {
4067    pub fn udat_formatCalendarForFields_78(
4068        format: *const UDateFormat,
4069        calendar: *mut UCalendar,
4070        result: *mut UChar,
4071        capacity: i32,
4072        fpositer: *mut UFieldPositionIterator,
4073        status: *mut UErrorCode,
4074    ) -> i32;
4075}
4076unsafe extern "C" {
4077    pub fn udat_parse_78(
4078        format: *const UDateFormat,
4079        text: *const UChar,
4080        textLength: i32,
4081        parsePos: *mut i32,
4082        status: *mut UErrorCode,
4083    ) -> UDate;
4084}
4085unsafe extern "C" {
4086    pub fn udat_parseCalendar_78(
4087        format: *const UDateFormat,
4088        calendar: *mut UCalendar,
4089        text: *const UChar,
4090        textLength: i32,
4091        parsePos: *mut i32,
4092        status: *mut UErrorCode,
4093    );
4094}
4095unsafe extern "C" {
4096    pub fn udat_isLenient_78(fmt: *const UDateFormat) -> UBool;
4097}
4098unsafe extern "C" {
4099    pub fn udat_setLenient_78(fmt: *mut UDateFormat, isLenient: UBool);
4100}
4101unsafe extern "C" {
4102    pub fn udat_getCalendar_78(fmt: *const UDateFormat) -> *const UCalendar;
4103}
4104unsafe extern "C" {
4105    pub fn udat_setCalendar_78(fmt: *mut UDateFormat, calendarToSet: *const UCalendar);
4106}
4107unsafe extern "C" {
4108    pub fn udat_getNumberFormat_78(fmt: *const UDateFormat) -> *const UNumberFormat;
4109}
4110unsafe extern "C" {
4111    pub fn udat_getNumberFormatForField_78(
4112        fmt: *const UDateFormat,
4113        field: UChar,
4114    ) -> *const UNumberFormat;
4115}
4116unsafe extern "C" {
4117    pub fn udat_adoptNumberFormatForFields_78(
4118        fmt: *mut UDateFormat,
4119        fields: *const UChar,
4120        numberFormatToSet: *mut UNumberFormat,
4121        status: *mut UErrorCode,
4122    );
4123}
4124unsafe extern "C" {
4125    pub fn udat_setNumberFormat_78(fmt: *mut UDateFormat, numberFormatToSet: *const UNumberFormat);
4126}
4127unsafe extern "C" {
4128    pub fn udat_adoptNumberFormat_78(
4129        fmt: *mut UDateFormat,
4130        numberFormatToAdopt: *mut UNumberFormat,
4131    );
4132}
4133unsafe extern "C" {
4134    pub fn udat_getAvailable_78(localeIndex: i32) -> *const ::std::os::raw::c_char;
4135}
4136unsafe extern "C" {
4137    pub fn udat_countAvailable_78() -> i32;
4138}
4139unsafe extern "C" {
4140    pub fn udat_get2DigitYearStart_78(fmt: *const UDateFormat, status: *mut UErrorCode) -> UDate;
4141}
4142unsafe extern "C" {
4143    pub fn udat_set2DigitYearStart_78(fmt: *mut UDateFormat, d: UDate, status: *mut UErrorCode);
4144}
4145unsafe extern "C" {
4146    pub fn udat_toPattern_78(
4147        fmt: *const UDateFormat,
4148        localized: UBool,
4149        result: *mut UChar,
4150        resultLength: i32,
4151        status: *mut UErrorCode,
4152    ) -> i32;
4153}
4154unsafe extern "C" {
4155    pub fn udat_applyPattern_78(
4156        format: *mut UDateFormat,
4157        localized: UBool,
4158        pattern: *const UChar,
4159        patternLength: i32,
4160    );
4161}
4162#[repr(u32)]
4163#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4164pub enum UDateFormatSymbolType {
4165    UDAT_ERAS = 0,
4166    UDAT_MONTHS = 1,
4167    UDAT_SHORT_MONTHS = 2,
4168    UDAT_WEEKDAYS = 3,
4169    UDAT_SHORT_WEEKDAYS = 4,
4170    UDAT_AM_PMS = 5,
4171    UDAT_LOCALIZED_CHARS = 6,
4172    UDAT_ERA_NAMES = 7,
4173    UDAT_NARROW_MONTHS = 8,
4174    UDAT_NARROW_WEEKDAYS = 9,
4175    UDAT_STANDALONE_MONTHS = 10,
4176    UDAT_STANDALONE_SHORT_MONTHS = 11,
4177    UDAT_STANDALONE_NARROW_MONTHS = 12,
4178    UDAT_STANDALONE_WEEKDAYS = 13,
4179    UDAT_STANDALONE_SHORT_WEEKDAYS = 14,
4180    UDAT_STANDALONE_NARROW_WEEKDAYS = 15,
4181    UDAT_QUARTERS = 16,
4182    UDAT_SHORT_QUARTERS = 17,
4183    UDAT_STANDALONE_QUARTERS = 18,
4184    UDAT_STANDALONE_SHORT_QUARTERS = 19,
4185    UDAT_SHORTER_WEEKDAYS = 20,
4186    UDAT_STANDALONE_SHORTER_WEEKDAYS = 21,
4187    UDAT_CYCLIC_YEARS_WIDE = 22,
4188    UDAT_CYCLIC_YEARS_ABBREVIATED = 23,
4189    UDAT_CYCLIC_YEARS_NARROW = 24,
4190    UDAT_ZODIAC_NAMES_WIDE = 25,
4191    UDAT_ZODIAC_NAMES_ABBREVIATED = 26,
4192    UDAT_ZODIAC_NAMES_NARROW = 27,
4193    UDAT_NARROW_QUARTERS = 28,
4194    UDAT_STANDALONE_NARROW_QUARTERS = 29,
4195    UDAT_AM_PMS_NARROW = 30,
4196    UDAT_AM_PMS_WIDE = 31,
4197}
4198#[repr(C)]
4199#[derive(Debug, Copy, Clone)]
4200pub struct UDateFormatSymbols {
4201    _unused: [u8; 0],
4202}
4203unsafe extern "C" {
4204    pub fn udat_getSymbols_78(
4205        fmt: *const UDateFormat,
4206        type_: UDateFormatSymbolType,
4207        symbolIndex: i32,
4208        result: *mut UChar,
4209        resultLength: i32,
4210        status: *mut UErrorCode,
4211    ) -> i32;
4212}
4213unsafe extern "C" {
4214    pub fn udat_countSymbols_78(fmt: *const UDateFormat, type_: UDateFormatSymbolType) -> i32;
4215}
4216unsafe extern "C" {
4217    pub fn udat_setSymbols_78(
4218        format: *mut UDateFormat,
4219        type_: UDateFormatSymbolType,
4220        symbolIndex: i32,
4221        value: *mut UChar,
4222        valueLength: i32,
4223        status: *mut UErrorCode,
4224    );
4225}
4226unsafe extern "C" {
4227    pub fn udat_getLocaleByType_78(
4228        fmt: *const UDateFormat,
4229        type_: ULocDataLocaleType,
4230        status: *mut UErrorCode,
4231    ) -> *const ::std::os::raw::c_char;
4232}
4233unsafe extern "C" {
4234    pub fn udat_setContext_78(
4235        fmt: *mut UDateFormat,
4236        value: UDisplayContext,
4237        status: *mut UErrorCode,
4238    );
4239}
4240unsafe extern "C" {
4241    pub fn udat_getContext_78(
4242        fmt: *const UDateFormat,
4243        type_: UDisplayContextType,
4244        status: *mut UErrorCode,
4245    ) -> UDisplayContext;
4246}
4247unsafe extern "C" {
4248    pub fn udat_toPatternRelativeDate_78(
4249        fmt: *const UDateFormat,
4250        result: *mut UChar,
4251        resultLength: i32,
4252        status: *mut UErrorCode,
4253    ) -> i32;
4254}
4255unsafe extern "C" {
4256    pub fn udat_toPatternRelativeTime_78(
4257        fmt: *const UDateFormat,
4258        result: *mut UChar,
4259        resultLength: i32,
4260        status: *mut UErrorCode,
4261    ) -> i32;
4262}
4263unsafe extern "C" {
4264    pub fn udat_applyPatternRelative_78(
4265        format: *mut UDateFormat,
4266        datePattern: *const UChar,
4267        datePatternLength: i32,
4268        timePattern: *const UChar,
4269        timePatternLength: i32,
4270        status: *mut UErrorCode,
4271    );
4272}
4273pub type UDateFormatOpener = ::std::option::Option<
4274    unsafe extern "C" fn(
4275        timeStyle: UDateFormatStyle,
4276        dateStyle: UDateFormatStyle,
4277        locale: *const ::std::os::raw::c_char,
4278        tzID: *const UChar,
4279        tzIDLength: i32,
4280        pattern: *const UChar,
4281        patternLength: i32,
4282        status: *mut UErrorCode,
4283    ) -> *mut UDateFormat,
4284>;
4285unsafe extern "C" {
4286    pub fn udat_registerOpener_78(opener: UDateFormatOpener, status: *mut UErrorCode);
4287}
4288unsafe extern "C" {
4289    pub fn udat_unregisterOpener_78(
4290        opener: UDateFormatOpener,
4291        status: *mut UErrorCode,
4292    ) -> UDateFormatOpener;
4293}
4294pub type UDateTimePatternGenerator = *mut ::std::os::raw::c_void;
4295#[repr(u32)]
4296#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4297pub enum UDateTimePatternField {
4298    UDATPG_ERA_FIELD = 0,
4299    UDATPG_YEAR_FIELD = 1,
4300    UDATPG_QUARTER_FIELD = 2,
4301    UDATPG_MONTH_FIELD = 3,
4302    UDATPG_WEEK_OF_YEAR_FIELD = 4,
4303    UDATPG_WEEK_OF_MONTH_FIELD = 5,
4304    UDATPG_WEEKDAY_FIELD = 6,
4305    UDATPG_DAY_OF_YEAR_FIELD = 7,
4306    UDATPG_DAY_OF_WEEK_IN_MONTH_FIELD = 8,
4307    UDATPG_DAY_FIELD = 9,
4308    UDATPG_DAYPERIOD_FIELD = 10,
4309    UDATPG_HOUR_FIELD = 11,
4310    UDATPG_MINUTE_FIELD = 12,
4311    UDATPG_SECOND_FIELD = 13,
4312    UDATPG_FRACTIONAL_SECOND_FIELD = 14,
4313    UDATPG_ZONE_FIELD = 15,
4314    UDATPG_FIELD_COUNT = 16,
4315}
4316#[repr(u32)]
4317#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4318pub enum UDateTimePGDisplayWidth {
4319    UDATPG_WIDE = 0,
4320    UDATPG_ABBREVIATED = 1,
4321    UDATPG_NARROW = 2,
4322}
4323#[repr(u32)]
4324#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4325pub enum UDateTimePatternMatchOptions {
4326    UDATPG_MATCH_NO_OPTIONS = 0,
4327    UDATPG_MATCH_HOUR_FIELD_LENGTH = 2048,
4328    UDATPG_MATCH_MINUTE_FIELD_LENGTH = 4096,
4329    UDATPG_MATCH_SECOND_FIELD_LENGTH = 8192,
4330    UDATPG_MATCH_ALL_FIELDS_LENGTH = 65535,
4331}
4332#[repr(u32)]
4333#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4334pub enum UDateTimePatternConflict {
4335    UDATPG_NO_CONFLICT = 0,
4336    UDATPG_BASE_CONFLICT = 1,
4337    UDATPG_CONFLICT = 2,
4338    UDATPG_CONFLICT_COUNT = 3,
4339}
4340unsafe extern "C" {
4341    pub fn udatpg_open_78(
4342        locale: *const ::std::os::raw::c_char,
4343        pErrorCode: *mut UErrorCode,
4344    ) -> *mut UDateTimePatternGenerator;
4345}
4346unsafe extern "C" {
4347    pub fn udatpg_openEmpty_78(pErrorCode: *mut UErrorCode) -> *mut UDateTimePatternGenerator;
4348}
4349unsafe extern "C" {
4350    pub fn udatpg_close_78(dtpg: *mut UDateTimePatternGenerator);
4351}
4352unsafe extern "C" {
4353    pub fn udatpg_clone_78(
4354        dtpg: *const UDateTimePatternGenerator,
4355        pErrorCode: *mut UErrorCode,
4356    ) -> *mut UDateTimePatternGenerator;
4357}
4358unsafe extern "C" {
4359    pub fn udatpg_getBestPattern_78(
4360        dtpg: *mut UDateTimePatternGenerator,
4361        skeleton: *const UChar,
4362        length: i32,
4363        bestPattern: *mut UChar,
4364        capacity: i32,
4365        pErrorCode: *mut UErrorCode,
4366    ) -> i32;
4367}
4368unsafe extern "C" {
4369    pub fn udatpg_getBestPatternWithOptions_78(
4370        dtpg: *mut UDateTimePatternGenerator,
4371        skeleton: *const UChar,
4372        length: i32,
4373        options: UDateTimePatternMatchOptions,
4374        bestPattern: *mut UChar,
4375        capacity: i32,
4376        pErrorCode: *mut UErrorCode,
4377    ) -> i32;
4378}
4379unsafe extern "C" {
4380    pub fn udatpg_getSkeleton_78(
4381        unusedDtpg: *mut UDateTimePatternGenerator,
4382        pattern: *const UChar,
4383        length: i32,
4384        skeleton: *mut UChar,
4385        capacity: i32,
4386        pErrorCode: *mut UErrorCode,
4387    ) -> i32;
4388}
4389unsafe extern "C" {
4390    pub fn udatpg_getBaseSkeleton_78(
4391        unusedDtpg: *mut UDateTimePatternGenerator,
4392        pattern: *const UChar,
4393        length: i32,
4394        baseSkeleton: *mut UChar,
4395        capacity: i32,
4396        pErrorCode: *mut UErrorCode,
4397    ) -> i32;
4398}
4399unsafe extern "C" {
4400    pub fn udatpg_addPattern_78(
4401        dtpg: *mut UDateTimePatternGenerator,
4402        pattern: *const UChar,
4403        patternLength: i32,
4404        override_: UBool,
4405        conflictingPattern: *mut UChar,
4406        capacity: i32,
4407        pLength: *mut i32,
4408        pErrorCode: *mut UErrorCode,
4409    ) -> UDateTimePatternConflict;
4410}
4411unsafe extern "C" {
4412    pub fn udatpg_setAppendItemFormat_78(
4413        dtpg: *mut UDateTimePatternGenerator,
4414        field: UDateTimePatternField,
4415        value: *const UChar,
4416        length: i32,
4417    );
4418}
4419unsafe extern "C" {
4420    pub fn udatpg_getAppendItemFormat_78(
4421        dtpg: *const UDateTimePatternGenerator,
4422        field: UDateTimePatternField,
4423        pLength: *mut i32,
4424    ) -> *const UChar;
4425}
4426unsafe extern "C" {
4427    pub fn udatpg_setAppendItemName_78(
4428        dtpg: *mut UDateTimePatternGenerator,
4429        field: UDateTimePatternField,
4430        value: *const UChar,
4431        length: i32,
4432    );
4433}
4434unsafe extern "C" {
4435    pub fn udatpg_getAppendItemName_78(
4436        dtpg: *const UDateTimePatternGenerator,
4437        field: UDateTimePatternField,
4438        pLength: *mut i32,
4439    ) -> *const UChar;
4440}
4441unsafe extern "C" {
4442    pub fn udatpg_getFieldDisplayName_78(
4443        dtpg: *const UDateTimePatternGenerator,
4444        field: UDateTimePatternField,
4445        width: UDateTimePGDisplayWidth,
4446        fieldName: *mut UChar,
4447        capacity: i32,
4448        pErrorCode: *mut UErrorCode,
4449    ) -> i32;
4450}
4451unsafe extern "C" {
4452    pub fn udatpg_setDateTimeFormat_78(
4453        dtpg: *const UDateTimePatternGenerator,
4454        dtFormat: *const UChar,
4455        length: i32,
4456    );
4457}
4458unsafe extern "C" {
4459    pub fn udatpg_getDateTimeFormat_78(
4460        dtpg: *const UDateTimePatternGenerator,
4461        pLength: *mut i32,
4462    ) -> *const UChar;
4463}
4464unsafe extern "C" {
4465    pub fn udatpg_setDateTimeFormatForStyle_78(
4466        udtpg: *mut UDateTimePatternGenerator,
4467        style: UDateFormatStyle,
4468        dateTimeFormat: *const UChar,
4469        length: i32,
4470        pErrorCode: *mut UErrorCode,
4471    );
4472}
4473unsafe extern "C" {
4474    pub fn udatpg_getDateTimeFormatForStyle_78(
4475        udtpg: *const UDateTimePatternGenerator,
4476        style: UDateFormatStyle,
4477        pLength: *mut i32,
4478        pErrorCode: *mut UErrorCode,
4479    ) -> *const UChar;
4480}
4481unsafe extern "C" {
4482    pub fn udatpg_setDecimal_78(
4483        dtpg: *mut UDateTimePatternGenerator,
4484        decimal: *const UChar,
4485        length: i32,
4486    );
4487}
4488unsafe extern "C" {
4489    pub fn udatpg_getDecimal_78(
4490        dtpg: *const UDateTimePatternGenerator,
4491        pLength: *mut i32,
4492    ) -> *const UChar;
4493}
4494unsafe extern "C" {
4495    pub fn udatpg_replaceFieldTypes_78(
4496        dtpg: *mut UDateTimePatternGenerator,
4497        pattern: *const UChar,
4498        patternLength: i32,
4499        skeleton: *const UChar,
4500        skeletonLength: i32,
4501        dest: *mut UChar,
4502        destCapacity: i32,
4503        pErrorCode: *mut UErrorCode,
4504    ) -> i32;
4505}
4506unsafe extern "C" {
4507    pub fn udatpg_replaceFieldTypesWithOptions_78(
4508        dtpg: *mut UDateTimePatternGenerator,
4509        pattern: *const UChar,
4510        patternLength: i32,
4511        skeleton: *const UChar,
4512        skeletonLength: i32,
4513        options: UDateTimePatternMatchOptions,
4514        dest: *mut UChar,
4515        destCapacity: i32,
4516        pErrorCode: *mut UErrorCode,
4517    ) -> i32;
4518}
4519unsafe extern "C" {
4520    pub fn udatpg_openSkeletons_78(
4521        dtpg: *const UDateTimePatternGenerator,
4522        pErrorCode: *mut UErrorCode,
4523    ) -> *mut UEnumeration;
4524}
4525unsafe extern "C" {
4526    pub fn udatpg_openBaseSkeletons_78(
4527        dtpg: *const UDateTimePatternGenerator,
4528        pErrorCode: *mut UErrorCode,
4529    ) -> *mut UEnumeration;
4530}
4531unsafe extern "C" {
4532    pub fn udatpg_getPatternForSkeleton_78(
4533        dtpg: *const UDateTimePatternGenerator,
4534        skeleton: *const UChar,
4535        skeletonLength: i32,
4536        pLength: *mut i32,
4537    ) -> *const UChar;
4538}
4539unsafe extern "C" {
4540    pub fn udatpg_getDefaultHourCycle_78(
4541        dtpg: *const UDateTimePatternGenerator,
4542        pErrorCode: *mut UErrorCode,
4543    ) -> UDateFormatHourCycle;
4544}
4545#[repr(C)]
4546#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, PartialEq)]
4547pub struct UDataInfo {
4548    pub size: u16,
4549    pub reservedWord: u16,
4550    pub isBigEndian: u8,
4551    pub charsetFamily: u8,
4552    pub sizeofUChar: u8,
4553    pub reservedByte: u8,
4554    pub dataFormat: [u8; 4usize],
4555    pub formatVersion: [u8; 4usize],
4556    pub dataVersion: [u8; 4usize],
4557}
4558#[allow(clippy::unnecessary_operation, clippy::identity_op)]
4559const _: () = {
4560    ["Size of UDataInfo"][::std::mem::size_of::<UDataInfo>() - 20usize];
4561    ["Alignment of UDataInfo"][::std::mem::align_of::<UDataInfo>() - 2usize];
4562    ["Offset of field: UDataInfo::size"][::std::mem::offset_of!(UDataInfo, size) - 0usize];
4563    ["Offset of field: UDataInfo::reservedWord"]
4564        [::std::mem::offset_of!(UDataInfo, reservedWord) - 2usize];
4565    ["Offset of field: UDataInfo::isBigEndian"]
4566        [::std::mem::offset_of!(UDataInfo, isBigEndian) - 4usize];
4567    ["Offset of field: UDataInfo::charsetFamily"]
4568        [::std::mem::offset_of!(UDataInfo, charsetFamily) - 5usize];
4569    ["Offset of field: UDataInfo::sizeofUChar"]
4570        [::std::mem::offset_of!(UDataInfo, sizeofUChar) - 6usize];
4571    ["Offset of field: UDataInfo::reservedByte"]
4572        [::std::mem::offset_of!(UDataInfo, reservedByte) - 7usize];
4573    ["Offset of field: UDataInfo::dataFormat"]
4574        [::std::mem::offset_of!(UDataInfo, dataFormat) - 8usize];
4575    ["Offset of field: UDataInfo::formatVersion"]
4576        [::std::mem::offset_of!(UDataInfo, formatVersion) - 12usize];
4577    ["Offset of field: UDataInfo::dataVersion"]
4578        [::std::mem::offset_of!(UDataInfo, dataVersion) - 16usize];
4579};
4580#[repr(C)]
4581#[derive(Debug, Copy, Clone)]
4582pub struct UDataMemory {
4583    _unused: [u8; 0],
4584}
4585pub type UDataMemoryIsAcceptable = ::std::option::Option<
4586    unsafe extern "C" fn(
4587        context: *mut ::std::os::raw::c_void,
4588        type_: *const ::std::os::raw::c_char,
4589        name: *const ::std::os::raw::c_char,
4590        pInfo: *const UDataInfo,
4591    ) -> UBool,
4592>;
4593unsafe extern "C" {
4594    pub fn udata_open_78(
4595        path: *const ::std::os::raw::c_char,
4596        type_: *const ::std::os::raw::c_char,
4597        name: *const ::std::os::raw::c_char,
4598        pErrorCode: *mut UErrorCode,
4599    ) -> *mut UDataMemory;
4600}
4601unsafe extern "C" {
4602    pub fn udata_openChoice_78(
4603        path: *const ::std::os::raw::c_char,
4604        type_: *const ::std::os::raw::c_char,
4605        name: *const ::std::os::raw::c_char,
4606        isAcceptable: UDataMemoryIsAcceptable,
4607        context: *mut ::std::os::raw::c_void,
4608        pErrorCode: *mut UErrorCode,
4609    ) -> *mut UDataMemory;
4610}
4611unsafe extern "C" {
4612    pub fn udata_close_78(pData: *mut UDataMemory);
4613}
4614unsafe extern "C" {
4615    pub fn udata_getMemory_78(pData: *mut UDataMemory) -> *const ::std::os::raw::c_void;
4616}
4617unsafe extern "C" {
4618    pub fn udata_getInfo_78(pData: *mut UDataMemory, pInfo: *mut UDataInfo);
4619}
4620unsafe extern "C" {
4621    pub fn udata_setCommonData_78(data: *const ::std::os::raw::c_void, err: *mut UErrorCode);
4622}
4623unsafe extern "C" {
4624    pub fn udata_setAppData_78(
4625        packageName: *const ::std::os::raw::c_char,
4626        data: *const ::std::os::raw::c_void,
4627        err: *mut UErrorCode,
4628    );
4629}
4630impl UDataFileAccess {
4631    pub const UDATA_DEFAULT_ACCESS: UDataFileAccess = UDataFileAccess::UDATA_FILES_FIRST;
4632}
4633#[repr(u32)]
4634#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4635pub enum UDataFileAccess {
4636    UDATA_FILES_FIRST = 0,
4637    UDATA_ONLY_PACKAGES = 1,
4638    UDATA_PACKAGES_FIRST = 2,
4639    UDATA_NO_FILES = 3,
4640    UDATA_FILE_ACCESS_COUNT = 4,
4641}
4642unsafe extern "C" {
4643    pub fn udata_setFileAccess_78(access: UDataFileAccess, status: *mut UErrorCode);
4644}
4645#[repr(u32)]
4646#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4647pub enum UFieldCategory {
4648    UFIELD_CATEGORY_UNDEFINED = 0,
4649    UFIELD_CATEGORY_DATE = 1,
4650    UFIELD_CATEGORY_NUMBER = 2,
4651    UFIELD_CATEGORY_LIST = 3,
4652    UFIELD_CATEGORY_RELATIVE_DATETIME = 4,
4653    UFIELD_CATEGORY_DATE_INTERVAL = 5,
4654    UFIELD_CATEGORY_COUNT = 6,
4655    UFIELD_CATEGORY_LIST_SPAN = 4099,
4656    UFIELD_CATEGORY_DATE_INTERVAL_SPAN = 4101,
4657    UFIELD_CATEGORY_NUMBER_RANGE_SPAN = 4098,
4658}
4659#[repr(C)]
4660#[derive(Debug, Copy, Clone)]
4661pub struct UFormattedValue {
4662    _unused: [u8; 0],
4663}
4664#[repr(C)]
4665#[derive(Debug, Copy, Clone)]
4666pub struct UListFormatter {
4667    _unused: [u8; 0],
4668}
4669#[repr(C)]
4670#[derive(Debug, Copy, Clone)]
4671pub struct UFormattedList {
4672    _unused: [u8; 0],
4673}
4674#[repr(u32)]
4675#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4676pub enum UListFormatterField {
4677    ULISTFMT_LITERAL_FIELD = 0,
4678    ULISTFMT_ELEMENT_FIELD = 1,
4679}
4680#[repr(u32)]
4681#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4682pub enum UListFormatterType {
4683    ULISTFMT_TYPE_AND = 0,
4684    ULISTFMT_TYPE_OR = 1,
4685    ULISTFMT_TYPE_UNITS = 2,
4686}
4687#[repr(u32)]
4688#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
4689pub enum UListFormatterWidth {
4690    ULISTFMT_WIDTH_WIDE = 0,
4691    ULISTFMT_WIDTH_SHORT = 1,
4692    ULISTFMT_WIDTH_NARROW = 2,
4693}
4694unsafe extern "C" {
4695    pub fn ulistfmt_open_78(
4696        locale: *const ::std::os::raw::c_char,
4697        status: *mut UErrorCode,
4698    ) -> *mut UListFormatter;
4699}
4700unsafe extern "C" {
4701    pub fn ulistfmt_openForType_78(
4702        locale: *const ::std::os::raw::c_char,
4703        type_: UListFormatterType,
4704        width: UListFormatterWidth,
4705        status: *mut UErrorCode,
4706    ) -> *mut UListFormatter;
4707}
4708unsafe extern "C" {
4709    pub fn ulistfmt_close_78(listfmt: *mut UListFormatter);
4710}
4711unsafe extern "C" {
4712    pub fn ulistfmt_openResult_78(ec: *mut UErrorCode) -> *mut UFormattedList;
4713}
4714unsafe extern "C" {
4715    pub fn ulistfmt_resultAsValue_78(
4716        uresult: *const UFormattedList,
4717        ec: *mut UErrorCode,
4718    ) -> *const UFormattedValue;
4719}
4720unsafe extern "C" {
4721    pub fn ulistfmt_closeResult_78(uresult: *mut UFormattedList);
4722}
4723unsafe extern "C" {
4724    pub fn ulistfmt_format_78(
4725        listfmt: *const UListFormatter,
4726        strings: *const *const UChar,
4727        stringLengths: *const i32,
4728        stringCount: i32,
4729        result: *mut UChar,
4730        resultCapacity: i32,
4731        status: *mut UErrorCode,
4732    ) -> i32;
4733}
4734unsafe extern "C" {
4735    pub fn ulistfmt_formatStringsToResult_78(
4736        listfmt: *const UListFormatter,
4737        strings: *const *const UChar,
4738        stringLengths: *const i32,
4739        stringCount: i32,
4740        uresult: *mut UFormattedList,
4741        status: *mut UErrorCode,
4742    );
4743}
4744pub type va_list = __builtin_va_list;
4745unsafe extern "C" {
4746    pub fn u_formatMessage_78(
4747        locale: *const ::std::os::raw::c_char,
4748        pattern: *const UChar,
4749        patternLength: i32,
4750        result: *mut UChar,
4751        resultLength: i32,
4752        status: *mut UErrorCode,
4753        ...
4754    ) -> i32;
4755}
4756unsafe extern "C" {
4757    pub fn u_vformatMessage_78(
4758        locale: *const ::std::os::raw::c_char,
4759        pattern: *const UChar,
4760        patternLength: i32,
4761        result: *mut UChar,
4762        resultLength: i32,
4763        ap: *mut __va_list_tag,
4764        status: *mut UErrorCode,
4765    ) -> i32;
4766}
4767unsafe extern "C" {
4768    pub fn u_parseMessage_78(
4769        locale: *const ::std::os::raw::c_char,
4770        pattern: *const UChar,
4771        patternLength: i32,
4772        source: *const UChar,
4773        sourceLength: i32,
4774        status: *mut UErrorCode,
4775        ...
4776    );
4777}
4778unsafe extern "C" {
4779    pub fn u_vparseMessage_78(
4780        locale: *const ::std::os::raw::c_char,
4781        pattern: *const UChar,
4782        patternLength: i32,
4783        source: *const UChar,
4784        sourceLength: i32,
4785        ap: *mut __va_list_tag,
4786        status: *mut UErrorCode,
4787    );
4788}
4789unsafe extern "C" {
4790    pub fn u_formatMessageWithError_78(
4791        locale: *const ::std::os::raw::c_char,
4792        pattern: *const UChar,
4793        patternLength: i32,
4794        result: *mut UChar,
4795        resultLength: i32,
4796        parseError: *mut UParseError,
4797        status: *mut UErrorCode,
4798        ...
4799    ) -> i32;
4800}
4801unsafe extern "C" {
4802    pub fn u_vformatMessageWithError_78(
4803        locale: *const ::std::os::raw::c_char,
4804        pattern: *const UChar,
4805        patternLength: i32,
4806        result: *mut UChar,
4807        resultLength: i32,
4808        parseError: *mut UParseError,
4809        ap: *mut __va_list_tag,
4810        status: *mut UErrorCode,
4811    ) -> i32;
4812}
4813unsafe extern "C" {
4814    pub fn u_parseMessageWithError_78(
4815        locale: *const ::std::os::raw::c_char,
4816        pattern: *const UChar,
4817        patternLength: i32,
4818        source: *const UChar,
4819        sourceLength: i32,
4820        parseError: *mut UParseError,
4821        status: *mut UErrorCode,
4822        ...
4823    );
4824}
4825unsafe extern "C" {
4826    pub fn u_vparseMessageWithError_78(
4827        locale: *const ::std::os::raw::c_char,
4828        pattern: *const UChar,
4829        patternLength: i32,
4830        source: *const UChar,
4831        sourceLength: i32,
4832        ap: *mut __va_list_tag,
4833        parseError: *mut UParseError,
4834        status: *mut UErrorCode,
4835    );
4836}
4837pub type UMessageFormat = *mut ::std::os::raw::c_void;
4838unsafe extern "C" {
4839    pub fn umsg_open_78(
4840        pattern: *const UChar,
4841        patternLength: i32,
4842        locale: *const ::std::os::raw::c_char,
4843        parseError: *mut UParseError,
4844        status: *mut UErrorCode,
4845    ) -> *mut UMessageFormat;
4846}
4847unsafe extern "C" {
4848    pub fn umsg_close_78(format: *mut UMessageFormat);
4849}
4850unsafe extern "C" {
4851    pub fn umsg_clone_78(fmt: *const UMessageFormat, status: *mut UErrorCode) -> UMessageFormat;
4852}
4853unsafe extern "C" {
4854    pub fn umsg_setLocale_78(fmt: *mut UMessageFormat, locale: *const ::std::os::raw::c_char);
4855}
4856unsafe extern "C" {
4857    pub fn umsg_getLocale_78(fmt: *const UMessageFormat) -> *const ::std::os::raw::c_char;
4858}
4859unsafe extern "C" {
4860    pub fn umsg_applyPattern_78(
4861        fmt: *mut UMessageFormat,
4862        pattern: *const UChar,
4863        patternLength: i32,
4864        parseError: *mut UParseError,
4865        status: *mut UErrorCode,
4866    );
4867}
4868unsafe extern "C" {
4869    pub fn umsg_toPattern_78(
4870        fmt: *const UMessageFormat,
4871        result: *mut UChar,
4872        resultLength: i32,
4873        status: *mut UErrorCode,
4874    ) -> i32;
4875}
4876unsafe extern "C" {
4877    pub fn umsg_format_78(
4878        fmt: *const UMessageFormat,
4879        result: *mut UChar,
4880        resultLength: i32,
4881        status: *mut UErrorCode,
4882        ...
4883    ) -> i32;
4884}
4885unsafe extern "C" {
4886    pub fn umsg_vformat_78(
4887        fmt: *const UMessageFormat,
4888        result: *mut UChar,
4889        resultLength: i32,
4890        ap: *mut __va_list_tag,
4891        status: *mut UErrorCode,
4892    ) -> i32;
4893}
4894unsafe extern "C" {
4895    pub fn umsg_parse_78(
4896        fmt: *const UMessageFormat,
4897        source: *const UChar,
4898        sourceLength: i32,
4899        count: *mut i32,
4900        status: *mut UErrorCode,
4901        ...
4902    );
4903}
4904unsafe extern "C" {
4905    pub fn umsg_vparse_78(
4906        fmt: *const UMessageFormat,
4907        source: *const UChar,
4908        sourceLength: i32,
4909        count: *mut i32,
4910        ap: *mut __va_list_tag,
4911        status: *mut UErrorCode,
4912    );
4913}
4914unsafe extern "C" {
4915    pub fn umsg_autoQuoteApostrophe_78(
4916        pattern: *const UChar,
4917        patternLength: i32,
4918        dest: *mut UChar,
4919        destCapacity: i32,
4920        ec: *mut UErrorCode,
4921    ) -> i32;
4922}
4923#[repr(C)]
4924#[derive(Debug, Copy, Clone)]
4925pub struct UFormattedNumber {
4926    _unused: [u8; 0],
4927}
4928unsafe extern "C" {
4929    pub fn unumf_openResult_78(ec: *mut UErrorCode) -> *mut UFormattedNumber;
4930}
4931unsafe extern "C" {
4932    pub fn unumf_resultAsValue_78(
4933        uresult: *const UFormattedNumber,
4934        ec: *mut UErrorCode,
4935    ) -> *const UFormattedValue;
4936}
4937unsafe extern "C" {
4938    pub fn unumf_resultToString_78(
4939        uresult: *const UFormattedNumber,
4940        buffer: *mut UChar,
4941        bufferCapacity: i32,
4942        ec: *mut UErrorCode,
4943    ) -> i32;
4944}
4945unsafe extern "C" {
4946    pub fn unumf_resultNextFieldPosition_78(
4947        uresult: *const UFormattedNumber,
4948        ufpos: *mut UFieldPosition,
4949        ec: *mut UErrorCode,
4950    ) -> UBool;
4951}
4952unsafe extern "C" {
4953    pub fn unumf_resultGetAllFieldPositions_78(
4954        uresult: *const UFormattedNumber,
4955        ufpositer: *mut UFieldPositionIterator,
4956        ec: *mut UErrorCode,
4957    );
4958}
4959unsafe extern "C" {
4960    pub fn unumf_resultToDecimalNumber_78(
4961        uresult: *const UFormattedNumber,
4962        dest: *mut ::std::os::raw::c_char,
4963        destCapacity: i32,
4964        ec: *mut UErrorCode,
4965    ) -> i32;
4966}
4967unsafe extern "C" {
4968    pub fn unumf_closeResult_78(uresult: *mut UFormattedNumber);
4969}
4970#[repr(C)]
4971#[derive(Debug, Copy, Clone)]
4972pub struct UNumberFormatter {
4973    _unused: [u8; 0],
4974}
4975unsafe extern "C" {
4976    pub fn unumf_openForSkeletonAndLocale_78(
4977        skeleton: *const UChar,
4978        skeletonLen: i32,
4979        locale: *const ::std::os::raw::c_char,
4980        ec: *mut UErrorCode,
4981    ) -> *mut UNumberFormatter;
4982}
4983unsafe extern "C" {
4984    pub fn unumf_openForSkeletonAndLocaleWithError_78(
4985        skeleton: *const UChar,
4986        skeletonLen: i32,
4987        locale: *const ::std::os::raw::c_char,
4988        perror: *mut UParseError,
4989        ec: *mut UErrorCode,
4990    ) -> *mut UNumberFormatter;
4991}
4992unsafe extern "C" {
4993    pub fn unumf_formatInt_78(
4994        uformatter: *const UNumberFormatter,
4995        value: i64,
4996        uresult: *mut UFormattedNumber,
4997        ec: *mut UErrorCode,
4998    );
4999}
5000unsafe extern "C" {
5001    pub fn unumf_formatDouble_78(
5002        uformatter: *const UNumberFormatter,
5003        value: f64,
5004        uresult: *mut UFormattedNumber,
5005        ec: *mut UErrorCode,
5006    );
5007}
5008unsafe extern "C" {
5009    pub fn unumf_formatDecimal_78(
5010        uformatter: *const UNumberFormatter,
5011        value: *const ::std::os::raw::c_char,
5012        valueLen: i32,
5013        uresult: *mut UFormattedNumber,
5014        ec: *mut UErrorCode,
5015    );
5016}
5017unsafe extern "C" {
5018    pub fn unumf_close_78(uformatter: *mut UNumberFormatter);
5019}
5020#[repr(C)]
5021#[derive(Debug, Copy, Clone)]
5022pub struct UFormattedNumberRange {
5023    _unused: [u8; 0],
5024}
5025#[repr(u32)]
5026#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
5027pub enum UPluralType {
5028    UPLURAL_TYPE_CARDINAL = 0,
5029    UPLURAL_TYPE_ORDINAL = 1,
5030    UPLURAL_TYPE_COUNT = 2,
5031}
5032#[repr(C)]
5033#[derive(Debug, Copy, Clone)]
5034pub struct UPluralRules {
5035    _unused: [u8; 0],
5036}
5037unsafe extern "C" {
5038    pub fn uplrules_open_78(
5039        locale: *const ::std::os::raw::c_char,
5040        status: *mut UErrorCode,
5041    ) -> *mut UPluralRules;
5042}
5043unsafe extern "C" {
5044    pub fn uplrules_openForType_78(
5045        locale: *const ::std::os::raw::c_char,
5046        type_: UPluralType,
5047        status: *mut UErrorCode,
5048    ) -> *mut UPluralRules;
5049}
5050unsafe extern "C" {
5051    pub fn uplrules_close_78(uplrules: *mut UPluralRules);
5052}
5053unsafe extern "C" {
5054    pub fn uplrules_select_78(
5055        uplrules: *const UPluralRules,
5056        number: f64,
5057        keyword: *mut UChar,
5058        capacity: i32,
5059        status: *mut UErrorCode,
5060    ) -> i32;
5061}
5062unsafe extern "C" {
5063    pub fn uplrules_selectFormatted_78(
5064        uplrules: *const UPluralRules,
5065        number: *const UFormattedNumber,
5066        keyword: *mut UChar,
5067        capacity: i32,
5068        status: *mut UErrorCode,
5069    ) -> i32;
5070}
5071unsafe extern "C" {
5072    pub fn uplrules_selectForRange_78(
5073        uplrules: *const UPluralRules,
5074        urange: *const UFormattedNumberRange,
5075        keyword: *mut UChar,
5076        capacity: i32,
5077        status: *mut UErrorCode,
5078    ) -> i32;
5079}
5080unsafe extern "C" {
5081    pub fn uplrules_selectWithFormat_78(
5082        uplrules: *const UPluralRules,
5083        number: f64,
5084        fmt: *const UNumberFormat,
5085        keyword: *mut UChar,
5086        capacity: i32,
5087        status: *mut UErrorCode,
5088    ) -> i32;
5089}
5090unsafe extern "C" {
5091    pub fn uplrules_getKeywords_78(
5092        uplrules: *const UPluralRules,
5093        status: *mut UErrorCode,
5094    ) -> *mut UEnumeration;
5095}
5096unsafe extern "C" {
5097    pub fn u_getDataDirectory_78() -> *const ::std::os::raw::c_char;
5098}
5099unsafe extern "C" {
5100    pub fn u_setDataDirectory_78(directory: *const ::std::os::raw::c_char);
5101}
5102unsafe extern "C" {
5103    pub fn u_getTimeZoneFilesDirectory_78(status: *mut UErrorCode)
5104        -> *const ::std::os::raw::c_char;
5105}
5106unsafe extern "C" {
5107    pub fn u_setTimeZoneFilesDirectory_78(
5108        path: *const ::std::os::raw::c_char,
5109        status: *mut UErrorCode,
5110    );
5111}
5112unsafe extern "C" {
5113    pub fn u_charsToUChars_78(cs: *const ::std::os::raw::c_char, us: *mut UChar, length: i32);
5114}
5115unsafe extern "C" {
5116    pub fn u_UCharsToChars_78(us: *const UChar, cs: *mut ::std::os::raw::c_char, length: i32);
5117}
5118unsafe extern "C" {
5119    pub fn u_strlen_78(s: *const UChar) -> i32;
5120}
5121unsafe extern "C" {
5122    pub fn u_countChar32_78(s: *const UChar, length: i32) -> i32;
5123}
5124unsafe extern "C" {
5125    pub fn u_strHasMoreChar32Than_78(s: *const UChar, length: i32, number: i32) -> UBool;
5126}
5127unsafe extern "C" {
5128    pub fn u_strcat_78(dst: *mut UChar, src: *const UChar) -> *mut UChar;
5129}
5130unsafe extern "C" {
5131    pub fn u_strncat_78(dst: *mut UChar, src: *const UChar, n: i32) -> *mut UChar;
5132}
5133unsafe extern "C" {
5134    pub fn u_strstr_78(s: *const UChar, substring: *const UChar) -> *mut UChar;
5135}
5136unsafe extern "C" {
5137    pub fn u_strFindFirst_78(
5138        s: *const UChar,
5139        length: i32,
5140        substring: *const UChar,
5141        subLength: i32,
5142    ) -> *mut UChar;
5143}
5144unsafe extern "C" {
5145    pub fn u_strchr_78(s: *const UChar, c: UChar) -> *mut UChar;
5146}
5147unsafe extern "C" {
5148    pub fn u_strchr32_78(s: *const UChar, c: UChar32) -> *mut UChar;
5149}
5150unsafe extern "C" {
5151    pub fn u_strrstr_78(s: *const UChar, substring: *const UChar) -> *mut UChar;
5152}
5153unsafe extern "C" {
5154    pub fn u_strFindLast_78(
5155        s: *const UChar,
5156        length: i32,
5157        substring: *const UChar,
5158        subLength: i32,
5159    ) -> *mut UChar;
5160}
5161unsafe extern "C" {
5162    pub fn u_strrchr_78(s: *const UChar, c: UChar) -> *mut UChar;
5163}
5164unsafe extern "C" {
5165    pub fn u_strrchr32_78(s: *const UChar, c: UChar32) -> *mut UChar;
5166}
5167unsafe extern "C" {
5168    pub fn u_strpbrk_78(string: *const UChar, matchSet: *const UChar) -> *mut UChar;
5169}
5170unsafe extern "C" {
5171    pub fn u_strcspn_78(string: *const UChar, matchSet: *const UChar) -> i32;
5172}
5173unsafe extern "C" {
5174    pub fn u_strspn_78(string: *const UChar, matchSet: *const UChar) -> i32;
5175}
5176unsafe extern "C" {
5177    pub fn u_strtok_r_78(
5178        src: *mut UChar,
5179        delim: *const UChar,
5180        saveState: *mut *mut UChar,
5181    ) -> *mut UChar;
5182}
5183unsafe extern "C" {
5184    pub fn u_strcmp_78(s1: *const UChar, s2: *const UChar) -> i32;
5185}
5186unsafe extern "C" {
5187    pub fn u_strcmpCodePointOrder_78(s1: *const UChar, s2: *const UChar) -> i32;
5188}
5189unsafe extern "C" {
5190    pub fn u_strCompare_78(
5191        s1: *const UChar,
5192        length1: i32,
5193        s2: *const UChar,
5194        length2: i32,
5195        codePointOrder: UBool,
5196    ) -> i32;
5197}
5198unsafe extern "C" {
5199    pub fn u_strCompareIter_78(
5200        iter1: *mut UCharIterator,
5201        iter2: *mut UCharIterator,
5202        codePointOrder: UBool,
5203    ) -> i32;
5204}
5205unsafe extern "C" {
5206    pub fn u_strCaseCompare_78(
5207        s1: *const UChar,
5208        length1: i32,
5209        s2: *const UChar,
5210        length2: i32,
5211        options: u32,
5212        pErrorCode: *mut UErrorCode,
5213    ) -> i32;
5214}
5215unsafe extern "C" {
5216    pub fn u_strncmp_78(ucs1: *const UChar, ucs2: *const UChar, n: i32) -> i32;
5217}
5218unsafe extern "C" {
5219    pub fn u_strncmpCodePointOrder_78(s1: *const UChar, s2: *const UChar, n: i32) -> i32;
5220}
5221unsafe extern "C" {
5222    pub fn u_strcasecmp_78(s1: *const UChar, s2: *const UChar, options: u32) -> i32;
5223}
5224unsafe extern "C" {
5225    pub fn u_strncasecmp_78(s1: *const UChar, s2: *const UChar, n: i32, options: u32) -> i32;
5226}
5227unsafe extern "C" {
5228    pub fn u_memcasecmp_78(s1: *const UChar, s2: *const UChar, length: i32, options: u32) -> i32;
5229}
5230unsafe extern "C" {
5231    pub fn u_strcpy_78(dst: *mut UChar, src: *const UChar) -> *mut UChar;
5232}
5233unsafe extern "C" {
5234    pub fn u_strncpy_78(dst: *mut UChar, src: *const UChar, n: i32) -> *mut UChar;
5235}
5236unsafe extern "C" {
5237    pub fn u_uastrcpy_78(dst: *mut UChar, src: *const ::std::os::raw::c_char) -> *mut UChar;
5238}
5239unsafe extern "C" {
5240    pub fn u_uastrncpy_78(
5241        dst: *mut UChar,
5242        src: *const ::std::os::raw::c_char,
5243        n: i32,
5244    ) -> *mut UChar;
5245}
5246unsafe extern "C" {
5247    pub fn u_austrcpy_78(
5248        dst: *mut ::std::os::raw::c_char,
5249        src: *const UChar,
5250    ) -> *mut ::std::os::raw::c_char;
5251}
5252unsafe extern "C" {
5253    pub fn u_austrncpy_78(
5254        dst: *mut ::std::os::raw::c_char,
5255        src: *const UChar,
5256        n: i32,
5257    ) -> *mut ::std::os::raw::c_char;
5258}
5259unsafe extern "C" {
5260    pub fn u_memcpy_78(dest: *mut UChar, src: *const UChar, count: i32) -> *mut UChar;
5261}
5262unsafe extern "C" {
5263    pub fn u_memmove_78(dest: *mut UChar, src: *const UChar, count: i32) -> *mut UChar;
5264}
5265unsafe extern "C" {
5266    pub fn u_memset_78(dest: *mut UChar, c: UChar, count: i32) -> *mut UChar;
5267}
5268unsafe extern "C" {
5269    pub fn u_memcmp_78(buf1: *const UChar, buf2: *const UChar, count: i32) -> i32;
5270}
5271unsafe extern "C" {
5272    pub fn u_memcmpCodePointOrder_78(s1: *const UChar, s2: *const UChar, count: i32) -> i32;
5273}
5274unsafe extern "C" {
5275    pub fn u_memchr_78(s: *const UChar, c: UChar, count: i32) -> *mut UChar;
5276}
5277unsafe extern "C" {
5278    pub fn u_memchr32_78(s: *const UChar, c: UChar32, count: i32) -> *mut UChar;
5279}
5280unsafe extern "C" {
5281    pub fn u_memrchr_78(s: *const UChar, c: UChar, count: i32) -> *mut UChar;
5282}
5283unsafe extern "C" {
5284    pub fn u_memrchr32_78(s: *const UChar, c: UChar32, count: i32) -> *mut UChar;
5285}
5286unsafe extern "C" {
5287    pub fn u_unescape_78(
5288        src: *const ::std::os::raw::c_char,
5289        dest: *mut UChar,
5290        destCapacity: i32,
5291    ) -> i32;
5292}
5293pub type UNESCAPE_CHAR_AT = ::std::option::Option<
5294    unsafe extern "C" fn(offset: i32, context: *mut ::std::os::raw::c_void) -> UChar,
5295>;
5296unsafe extern "C" {
5297    pub fn u_unescapeAt_78(
5298        charAt: UNESCAPE_CHAR_AT,
5299        offset: *mut i32,
5300        length: i32,
5301        context: *mut ::std::os::raw::c_void,
5302    ) -> UChar32;
5303}
5304unsafe extern "C" {
5305    pub fn u_strToUpper_78(
5306        dest: *mut UChar,
5307        destCapacity: i32,
5308        src: *const UChar,
5309        srcLength: i32,
5310        locale: *const ::std::os::raw::c_char,
5311        pErrorCode: *mut UErrorCode,
5312    ) -> i32;
5313}
5314unsafe extern "C" {
5315    pub fn u_strToLower_78(
5316        dest: *mut UChar,
5317        destCapacity: i32,
5318        src: *const UChar,
5319        srcLength: i32,
5320        locale: *const ::std::os::raw::c_char,
5321        pErrorCode: *mut UErrorCode,
5322    ) -> i32;
5323}
5324unsafe extern "C" {
5325    pub fn u_strToTitle_78(
5326        dest: *mut UChar,
5327        destCapacity: i32,
5328        src: *const UChar,
5329        srcLength: i32,
5330        titleIter: *mut UBreakIterator,
5331        locale: *const ::std::os::raw::c_char,
5332        pErrorCode: *mut UErrorCode,
5333    ) -> i32;
5334}
5335unsafe extern "C" {
5336    pub fn u_strFoldCase_78(
5337        dest: *mut UChar,
5338        destCapacity: i32,
5339        src: *const UChar,
5340        srcLength: i32,
5341        options: u32,
5342        pErrorCode: *mut UErrorCode,
5343    ) -> i32;
5344}
5345unsafe extern "C" {
5346    pub fn u_strToWCS_78(
5347        dest: *mut wchar_t,
5348        destCapacity: i32,
5349        pDestLength: *mut i32,
5350        src: *const UChar,
5351        srcLength: i32,
5352        pErrorCode: *mut UErrorCode,
5353    ) -> *mut wchar_t;
5354}
5355unsafe extern "C" {
5356    pub fn u_strFromWCS_78(
5357        dest: *mut UChar,
5358        destCapacity: i32,
5359        pDestLength: *mut i32,
5360        src: *const wchar_t,
5361        srcLength: i32,
5362        pErrorCode: *mut UErrorCode,
5363    ) -> *mut UChar;
5364}
5365unsafe extern "C" {
5366    pub fn u_strToUTF8_78(
5367        dest: *mut ::std::os::raw::c_char,
5368        destCapacity: i32,
5369        pDestLength: *mut i32,
5370        src: *const UChar,
5371        srcLength: i32,
5372        pErrorCode: *mut UErrorCode,
5373    ) -> *mut ::std::os::raw::c_char;
5374}
5375unsafe extern "C" {
5376    pub fn u_strFromUTF8_78(
5377        dest: *mut UChar,
5378        destCapacity: i32,
5379        pDestLength: *mut i32,
5380        src: *const ::std::os::raw::c_char,
5381        srcLength: i32,
5382        pErrorCode: *mut UErrorCode,
5383    ) -> *mut UChar;
5384}
5385unsafe extern "C" {
5386    pub fn u_strToUTF8WithSub_78(
5387        dest: *mut ::std::os::raw::c_char,
5388        destCapacity: i32,
5389        pDestLength: *mut i32,
5390        src: *const UChar,
5391        srcLength: i32,
5392        subchar: UChar32,
5393        pNumSubstitutions: *mut i32,
5394        pErrorCode: *mut UErrorCode,
5395    ) -> *mut ::std::os::raw::c_char;
5396}
5397unsafe extern "C" {
5398    pub fn u_strFromUTF8WithSub_78(
5399        dest: *mut UChar,
5400        destCapacity: i32,
5401        pDestLength: *mut i32,
5402        src: *const ::std::os::raw::c_char,
5403        srcLength: i32,
5404        subchar: UChar32,
5405        pNumSubstitutions: *mut i32,
5406        pErrorCode: *mut UErrorCode,
5407    ) -> *mut UChar;
5408}
5409unsafe extern "C" {
5410    pub fn u_strFromUTF8Lenient_78(
5411        dest: *mut UChar,
5412        destCapacity: i32,
5413        pDestLength: *mut i32,
5414        src: *const ::std::os::raw::c_char,
5415        srcLength: i32,
5416        pErrorCode: *mut UErrorCode,
5417    ) -> *mut UChar;
5418}
5419unsafe extern "C" {
5420    pub fn u_strToUTF32_78(
5421        dest: *mut UChar32,
5422        destCapacity: i32,
5423        pDestLength: *mut i32,
5424        src: *const UChar,
5425        srcLength: i32,
5426        pErrorCode: *mut UErrorCode,
5427    ) -> *mut UChar32;
5428}
5429unsafe extern "C" {
5430    pub fn u_strFromUTF32_78(
5431        dest: *mut UChar,
5432        destCapacity: i32,
5433        pDestLength: *mut i32,
5434        src: *const UChar32,
5435        srcLength: i32,
5436        pErrorCode: *mut UErrorCode,
5437    ) -> *mut UChar;
5438}
5439unsafe extern "C" {
5440    pub fn u_strToUTF32WithSub_78(
5441        dest: *mut UChar32,
5442        destCapacity: i32,
5443        pDestLength: *mut i32,
5444        src: *const UChar,
5445        srcLength: i32,
5446        subchar: UChar32,
5447        pNumSubstitutions: *mut i32,
5448        pErrorCode: *mut UErrorCode,
5449    ) -> *mut UChar32;
5450}
5451unsafe extern "C" {
5452    pub fn u_strFromUTF32WithSub_78(
5453        dest: *mut UChar,
5454        destCapacity: i32,
5455        pDestLength: *mut i32,
5456        src: *const UChar32,
5457        srcLength: i32,
5458        subchar: UChar32,
5459        pNumSubstitutions: *mut i32,
5460        pErrorCode: *mut UErrorCode,
5461    ) -> *mut UChar;
5462}
5463unsafe extern "C" {
5464    pub fn u_strToJavaModifiedUTF8_78(
5465        dest: *mut ::std::os::raw::c_char,
5466        destCapacity: i32,
5467        pDestLength: *mut i32,
5468        src: *const UChar,
5469        srcLength: i32,
5470        pErrorCode: *mut UErrorCode,
5471    ) -> *mut ::std::os::raw::c_char;
5472}
5473unsafe extern "C" {
5474    pub fn u_strFromJavaModifiedUTF8WithSub_78(
5475        dest: *mut UChar,
5476        destCapacity: i32,
5477        pDestLength: *mut i32,
5478        src: *const ::std::os::raw::c_char,
5479        srcLength: i32,
5480        subchar: UChar32,
5481        pNumSubstitutions: *mut i32,
5482        pErrorCode: *mut UErrorCode,
5483    ) -> *mut UChar;
5484}
5485pub type UReplaceable = *mut ::std::os::raw::c_void;
5486#[repr(C)]
5487#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, PartialEq)]
5488pub struct UReplaceableCallbacks {
5489    pub length: ::std::option::Option<unsafe extern "C" fn(rep: *const UReplaceable) -> i32>,
5490    pub charAt:
5491        ::std::option::Option<unsafe extern "C" fn(rep: *const UReplaceable, offset: i32) -> UChar>,
5492    pub char32At: ::std::option::Option<
5493        unsafe extern "C" fn(rep: *const UReplaceable, offset: i32) -> UChar32,
5494    >,
5495    pub replace: ::std::option::Option<
5496        unsafe extern "C" fn(
5497            rep: *mut UReplaceable,
5498            start: i32,
5499            limit: i32,
5500            text: *const UChar,
5501            textLength: i32,
5502        ),
5503    >,
5504    pub extract: ::std::option::Option<
5505        unsafe extern "C" fn(rep: *mut UReplaceable, start: i32, limit: i32, dst: *mut UChar),
5506    >,
5507    pub copy: ::std::option::Option<
5508        unsafe extern "C" fn(rep: *mut UReplaceable, start: i32, limit: i32, dest: i32),
5509    >,
5510}
5511#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5512const _: () = {
5513    ["Size of UReplaceableCallbacks"][::std::mem::size_of::<UReplaceableCallbacks>() - 48usize];
5514    ["Alignment of UReplaceableCallbacks"]
5515        [::std::mem::align_of::<UReplaceableCallbacks>() - 8usize];
5516    ["Offset of field: UReplaceableCallbacks::length"]
5517        [::std::mem::offset_of!(UReplaceableCallbacks, length) - 0usize];
5518    ["Offset of field: UReplaceableCallbacks::charAt"]
5519        [::std::mem::offset_of!(UReplaceableCallbacks, charAt) - 8usize];
5520    ["Offset of field: UReplaceableCallbacks::char32At"]
5521        [::std::mem::offset_of!(UReplaceableCallbacks, char32At) - 16usize];
5522    ["Offset of field: UReplaceableCallbacks::replace"]
5523        [::std::mem::offset_of!(UReplaceableCallbacks, replace) - 24usize];
5524    ["Offset of field: UReplaceableCallbacks::extract"]
5525        [::std::mem::offset_of!(UReplaceableCallbacks, extract) - 32usize];
5526    ["Offset of field: UReplaceableCallbacks::copy"]
5527        [::std::mem::offset_of!(UReplaceableCallbacks, copy) - 40usize];
5528};
5529pub type UTransliterator = *mut ::std::os::raw::c_void;
5530#[repr(u32)]
5531#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
5532pub enum UTransDirection {
5533    UTRANS_FORWARD = 0,
5534    UTRANS_REVERSE = 1,
5535}
5536#[repr(C)]
5537#[derive(Debug, Default, Copy, Clone, Hash, PartialOrd, PartialEq)]
5538pub struct UTransPosition {
5539    pub contextStart: i32,
5540    pub contextLimit: i32,
5541    pub start: i32,
5542    pub limit: i32,
5543}
5544#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5545const _: () = {
5546    ["Size of UTransPosition"][::std::mem::size_of::<UTransPosition>() - 16usize];
5547    ["Alignment of UTransPosition"][::std::mem::align_of::<UTransPosition>() - 4usize];
5548    ["Offset of field: UTransPosition::contextStart"]
5549        [::std::mem::offset_of!(UTransPosition, contextStart) - 0usize];
5550    ["Offset of field: UTransPosition::contextLimit"]
5551        [::std::mem::offset_of!(UTransPosition, contextLimit) - 4usize];
5552    ["Offset of field: UTransPosition::start"]
5553        [::std::mem::offset_of!(UTransPosition, start) - 8usize];
5554    ["Offset of field: UTransPosition::limit"]
5555        [::std::mem::offset_of!(UTransPosition, limit) - 12usize];
5556};
5557unsafe extern "C" {
5558    pub fn utrans_openU_78(
5559        id: *const UChar,
5560        idLength: i32,
5561        dir: UTransDirection,
5562        rules: *const UChar,
5563        rulesLength: i32,
5564        parseError: *mut UParseError,
5565        pErrorCode: *mut UErrorCode,
5566    ) -> *mut UTransliterator;
5567}
5568unsafe extern "C" {
5569    pub fn utrans_openInverse_78(
5570        trans: *const UTransliterator,
5571        status: *mut UErrorCode,
5572    ) -> *mut UTransliterator;
5573}
5574unsafe extern "C" {
5575    pub fn utrans_clone_78(
5576        trans: *const UTransliterator,
5577        status: *mut UErrorCode,
5578    ) -> *mut UTransliterator;
5579}
5580unsafe extern "C" {
5581    pub fn utrans_close_78(trans: *mut UTransliterator);
5582}
5583unsafe extern "C" {
5584    pub fn utrans_getUnicodeID_78(
5585        trans: *const UTransliterator,
5586        resultLength: *mut i32,
5587    ) -> *const UChar;
5588}
5589unsafe extern "C" {
5590    pub fn utrans_register_78(adoptedTrans: *mut UTransliterator, status: *mut UErrorCode);
5591}
5592unsafe extern "C" {
5593    pub fn utrans_unregisterID_78(id: *const UChar, idLength: i32);
5594}
5595unsafe extern "C" {
5596    pub fn utrans_setFilter_78(
5597        trans: *mut UTransliterator,
5598        filterPattern: *const UChar,
5599        filterPatternLen: i32,
5600        status: *mut UErrorCode,
5601    );
5602}
5603unsafe extern "C" {
5604    pub fn utrans_countAvailableIDs_78() -> i32;
5605}
5606unsafe extern "C" {
5607    pub fn utrans_openIDs_78(pErrorCode: *mut UErrorCode) -> *mut UEnumeration;
5608}
5609unsafe extern "C" {
5610    pub fn utrans_trans_78(
5611        trans: *const UTransliterator,
5612        rep: *mut UReplaceable,
5613        repFunc: *const UReplaceableCallbacks,
5614        start: i32,
5615        limit: *mut i32,
5616        status: *mut UErrorCode,
5617    );
5618}
5619unsafe extern "C" {
5620    pub fn utrans_transIncremental_78(
5621        trans: *const UTransliterator,
5622        rep: *mut UReplaceable,
5623        repFunc: *const UReplaceableCallbacks,
5624        pos: *mut UTransPosition,
5625        status: *mut UErrorCode,
5626    );
5627}
5628unsafe extern "C" {
5629    pub fn utrans_transUChars_78(
5630        trans: *const UTransliterator,
5631        text: *mut UChar,
5632        textLength: *mut i32,
5633        textCapacity: i32,
5634        start: i32,
5635        limit: *mut i32,
5636        status: *mut UErrorCode,
5637    );
5638}
5639unsafe extern "C" {
5640    pub fn utrans_transIncrementalUChars_78(
5641        trans: *const UTransliterator,
5642        text: *mut UChar,
5643        textLength: *mut i32,
5644        textCapacity: i32,
5645        pos: *mut UTransPosition,
5646        status: *mut UErrorCode,
5647    );
5648}
5649unsafe extern "C" {
5650    pub fn utrans_toRules_78(
5651        trans: *const UTransliterator,
5652        escapeUnprintable: UBool,
5653        result: *mut UChar,
5654        resultLength: i32,
5655        status: *mut UErrorCode,
5656    ) -> i32;
5657}
5658unsafe extern "C" {
5659    pub fn utrans_getSourceSet_78(
5660        trans: *const UTransliterator,
5661        ignoreFilter: UBool,
5662        fillIn: *mut USet,
5663        status: *mut UErrorCode,
5664    ) -> *mut USet;
5665}
5666unsafe extern "C" {
5667    pub fn utrans_open_78(
5668        id: *const ::std::os::raw::c_char,
5669        dir: UTransDirection,
5670        rules: *const UChar,
5671        rulesLength: i32,
5672        parseError: *mut UParseError,
5673        status: *mut UErrorCode,
5674    ) -> *mut UTransliterator;
5675}
5676unsafe extern "C" {
5677    pub fn utrans_getID_78(
5678        trans: *const UTransliterator,
5679        buf: *mut ::std::os::raw::c_char,
5680        bufCapacity: i32,
5681    ) -> i32;
5682}
5683unsafe extern "C" {
5684    pub fn utrans_unregister_78(id: *const ::std::os::raw::c_char);
5685}
5686unsafe extern "C" {
5687    pub fn utrans_getAvailableID_78(
5688        index: i32,
5689        buf: *mut ::std::os::raw::c_char,
5690        bufCapacity: i32,
5691    ) -> i32;
5692}
5693#[repr(C)]
5694#[derive(Copy, Clone)]
5695pub union UCPTrieData {
5696    pub ptr0: *const ::std::os::raw::c_void,
5697    pub ptr16: *const u16,
5698    pub ptr32: *const u32,
5699    pub ptr8: *const u8,
5700}
5701#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5702const _: () = {
5703    ["Size of UCPTrieData"][::std::mem::size_of::<UCPTrieData>() - 8usize];
5704    ["Alignment of UCPTrieData"][::std::mem::align_of::<UCPTrieData>() - 8usize];
5705    ["Offset of field: UCPTrieData::ptr0"][::std::mem::offset_of!(UCPTrieData, ptr0) - 0usize];
5706    ["Offset of field: UCPTrieData::ptr16"][::std::mem::offset_of!(UCPTrieData, ptr16) - 0usize];
5707    ["Offset of field: UCPTrieData::ptr32"][::std::mem::offset_of!(UCPTrieData, ptr32) - 0usize];
5708    ["Offset of field: UCPTrieData::ptr8"][::std::mem::offset_of!(UCPTrieData, ptr8) - 0usize];
5709};
5710impl Default for UCPTrieData {
5711    fn default() -> Self {
5712        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5713        unsafe {
5714            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5715            s.assume_init()
5716        }
5717    }
5718}
5719#[repr(C)]
5720#[derive(Copy, Clone)]
5721pub struct UCPTrie {
5722    pub index: *const u16,
5723    pub data: UCPTrieData,
5724    pub indexLength: i32,
5725    pub dataLength: i32,
5726    pub highStart: UChar32,
5727    pub shifted12HighStart: u16,
5728    pub type_: i8,
5729    pub valueWidth: i8,
5730    pub reserved32: u32,
5731    pub reserved16: u16,
5732    pub index3NullOffset: u16,
5733    pub dataNullOffset: i32,
5734    pub nullValue: u32,
5735}
5736#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5737const _: () = {
5738    ["Size of UCPTrie"][::std::mem::size_of::<UCPTrie>() - 48usize];
5739    ["Alignment of UCPTrie"][::std::mem::align_of::<UCPTrie>() - 8usize];
5740    ["Offset of field: UCPTrie::index"][::std::mem::offset_of!(UCPTrie, index) - 0usize];
5741    ["Offset of field: UCPTrie::data"][::std::mem::offset_of!(UCPTrie, data) - 8usize];
5742    ["Offset of field: UCPTrie::indexLength"]
5743        [::std::mem::offset_of!(UCPTrie, indexLength) - 16usize];
5744    ["Offset of field: UCPTrie::dataLength"][::std::mem::offset_of!(UCPTrie, dataLength) - 20usize];
5745    ["Offset of field: UCPTrie::highStart"][::std::mem::offset_of!(UCPTrie, highStart) - 24usize];
5746    ["Offset of field: UCPTrie::shifted12HighStart"]
5747        [::std::mem::offset_of!(UCPTrie, shifted12HighStart) - 28usize];
5748    ["Offset of field: UCPTrie::type_"][::std::mem::offset_of!(UCPTrie, type_) - 30usize];
5749    ["Offset of field: UCPTrie::valueWidth"][::std::mem::offset_of!(UCPTrie, valueWidth) - 31usize];
5750    ["Offset of field: UCPTrie::reserved32"][::std::mem::offset_of!(UCPTrie, reserved32) - 32usize];
5751    ["Offset of field: UCPTrie::reserved16"][::std::mem::offset_of!(UCPTrie, reserved16) - 36usize];
5752    ["Offset of field: UCPTrie::index3NullOffset"]
5753        [::std::mem::offset_of!(UCPTrie, index3NullOffset) - 38usize];
5754    ["Offset of field: UCPTrie::dataNullOffset"]
5755        [::std::mem::offset_of!(UCPTrie, dataNullOffset) - 40usize];
5756    ["Offset of field: UCPTrie::nullValue"][::std::mem::offset_of!(UCPTrie, nullValue) - 44usize];
5757};
5758impl Default for UCPTrie {
5759    fn default() -> Self {
5760        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5761        unsafe {
5762            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5763            s.assume_init()
5764        }
5765    }
5766}
5767#[repr(i32)]
5768#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
5769pub enum UCPTrieType {
5770    UCPTRIE_TYPE_ANY = -1,
5771    UCPTRIE_TYPE_FAST = 0,
5772    UCPTRIE_TYPE_SMALL = 1,
5773}
5774#[repr(i32)]
5775#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq, Eq)]
5776pub enum UCPTrieValueWidth {
5777    UCPTRIE_VALUE_BITS_ANY = -1,
5778    UCPTRIE_VALUE_BITS_16 = 0,
5779    UCPTRIE_VALUE_BITS_32 = 1,
5780    UCPTRIE_VALUE_BITS_8 = 2,
5781}
5782unsafe extern "C" {
5783    pub fn ucptrie_openFromBinary_78(
5784        type_: UCPTrieType,
5785        valueWidth: UCPTrieValueWidth,
5786        data: *const ::std::os::raw::c_void,
5787        length: i32,
5788        pActualLength: *mut i32,
5789        pErrorCode: *mut UErrorCode,
5790    ) -> *mut UCPTrie;
5791}
5792unsafe extern "C" {
5793    pub fn ucptrie_close_78(trie: *mut UCPTrie);
5794}
5795unsafe extern "C" {
5796    pub fn ucptrie_getType_78(trie: *const UCPTrie) -> UCPTrieType;
5797}
5798unsafe extern "C" {
5799    pub fn ucptrie_getValueWidth_78(trie: *const UCPTrie) -> UCPTrieValueWidth;
5800}
5801unsafe extern "C" {
5802    pub fn ucptrie_get_78(trie: *const UCPTrie, c: UChar32) -> u32;
5803}
5804unsafe extern "C" {
5805    pub fn ucptrie_getRange_78(
5806        trie: *const UCPTrie,
5807        start: UChar32,
5808        option: UCPMapRangeOption,
5809        surrogateValue: u32,
5810        filter: UCPMapValueFilter,
5811        context: *const ::std::os::raw::c_void,
5812        pValue: *mut u32,
5813    ) -> UChar32;
5814}
5815unsafe extern "C" {
5816    pub fn ucptrie_toBinary_78(
5817        trie: *const UCPTrie,
5818        data: *mut ::std::os::raw::c_void,
5819        capacity: i32,
5820        pErrorCode: *mut UErrorCode,
5821    ) -> i32;
5822}
5823unsafe extern "C" {
5824    pub fn ucptrie_internalSmallIndex_78(trie: *const UCPTrie, c: UChar32) -> i32;
5825}
5826unsafe extern "C" {
5827    pub fn ucptrie_internalSmallU8Index_78(trie: *const UCPTrie, lt1: i32, t2: u8, t3: u8) -> i32;
5828}
5829unsafe extern "C" {
5830    pub fn ucptrie_internalU8PrevIndex_78(
5831        trie: *const UCPTrie,
5832        c: UChar32,
5833        start: *const u8,
5834        src: *const u8,
5835    ) -> i32;
5836}
5837#[repr(C)]
5838#[derive(Debug, Copy, Clone)]
5839pub struct UMutableCPTrie {
5840    _unused: [u8; 0],
5841}
5842unsafe extern "C" {
5843    pub fn umutablecptrie_open_78(
5844        initialValue: u32,
5845        errorValue: u32,
5846        pErrorCode: *mut UErrorCode,
5847    ) -> *mut UMutableCPTrie;
5848}
5849unsafe extern "C" {
5850    pub fn umutablecptrie_clone_78(
5851        other: *const UMutableCPTrie,
5852        pErrorCode: *mut UErrorCode,
5853    ) -> *mut UMutableCPTrie;
5854}
5855unsafe extern "C" {
5856    pub fn umutablecptrie_close_78(trie: *mut UMutableCPTrie);
5857}
5858unsafe extern "C" {
5859    pub fn umutablecptrie_fromUCPMap_78(
5860        map: *const UCPMap,
5861        pErrorCode: *mut UErrorCode,
5862    ) -> *mut UMutableCPTrie;
5863}
5864unsafe extern "C" {
5865    pub fn umutablecptrie_fromUCPTrie_78(
5866        trie: *const UCPTrie,
5867        pErrorCode: *mut UErrorCode,
5868    ) -> *mut UMutableCPTrie;
5869}
5870unsafe extern "C" {
5871    pub fn umutablecptrie_get_78(trie: *const UMutableCPTrie, c: UChar32) -> u32;
5872}
5873unsafe extern "C" {
5874    pub fn umutablecptrie_getRange_78(
5875        trie: *const UMutableCPTrie,
5876        start: UChar32,
5877        option: UCPMapRangeOption,
5878        surrogateValue: u32,
5879        filter: UCPMapValueFilter,
5880        context: *const ::std::os::raw::c_void,
5881        pValue: *mut u32,
5882    ) -> UChar32;
5883}
5884unsafe extern "C" {
5885    pub fn umutablecptrie_set_78(
5886        trie: *mut UMutableCPTrie,
5887        c: UChar32,
5888        value: u32,
5889        pErrorCode: *mut UErrorCode,
5890    );
5891}
5892unsafe extern "C" {
5893    pub fn umutablecptrie_setRange_78(
5894        trie: *mut UMutableCPTrie,
5895        start: UChar32,
5896        end: UChar32,
5897        value: u32,
5898        pErrorCode: *mut UErrorCode,
5899    );
5900}
5901unsafe extern "C" {
5902    pub fn umutablecptrie_buildImmutable_78(
5903        trie: *mut UMutableCPTrie,
5904        type_: UCPTrieType,
5905        valueWidth: UCPTrieValueWidth,
5906        pErrorCode: *mut UErrorCode,
5907    ) -> *mut UCPTrie;
5908}
5909pub type __builtin_va_list = [__va_list_tag; 1usize];
5910#[repr(C)]
5911#[derive(Debug, Copy, Clone, Hash, PartialOrd, PartialEq)]
5912pub struct __va_list_tag {
5913    pub gp_offset: ::std::os::raw::c_uint,
5914    pub fp_offset: ::std::os::raw::c_uint,
5915    pub overflow_arg_area: *mut ::std::os::raw::c_void,
5916    pub reg_save_area: *mut ::std::os::raw::c_void,
5917}
5918#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5919const _: () = {
5920    ["Size of __va_list_tag"][::std::mem::size_of::<__va_list_tag>() - 24usize];
5921    ["Alignment of __va_list_tag"][::std::mem::align_of::<__va_list_tag>() - 8usize];
5922    ["Offset of field: __va_list_tag::gp_offset"]
5923        [::std::mem::offset_of!(__va_list_tag, gp_offset) - 0usize];
5924    ["Offset of field: __va_list_tag::fp_offset"]
5925        [::std::mem::offset_of!(__va_list_tag, fp_offset) - 4usize];
5926    ["Offset of field: __va_list_tag::overflow_arg_area"]
5927        [::std::mem::offset_of!(__va_list_tag, overflow_arg_area) - 8usize];
5928    ["Offset of field: __va_list_tag::reg_save_area"]
5929        [::std::mem::offset_of!(__va_list_tag, reg_save_area) - 16usize];
5930};
5931impl Default for __va_list_tag {
5932    fn default() -> Self {
5933        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5934        unsafe {
5935            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5936            s.assume_init()
5937        }
5938    }
5939}