17db96d56Sopenharmony_ci/* Unicode name database interface */
27db96d56Sopenharmony_ci#ifndef Py_INTERNAL_UCNHASH_H
37db96d56Sopenharmony_ci#define Py_INTERNAL_UCNHASH_H
47db96d56Sopenharmony_ci#ifdef __cplusplus
57db96d56Sopenharmony_ciextern "C" {
67db96d56Sopenharmony_ci#endif
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE
97db96d56Sopenharmony_ci#  error "this header requires Py_BUILD_CORE define"
107db96d56Sopenharmony_ci#endif
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_ci/* revised ucnhash CAPI interface (exported through a "wrapper") */
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci#define PyUnicodeData_CAPSULE_NAME "unicodedata._ucnhash_CAPI"
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_citypedef struct {
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ci    /* Get name for a given character code.
197db96d56Sopenharmony_ci       Returns non-zero if success, zero if not.
207db96d56Sopenharmony_ci       Does not set Python exceptions. */
217db96d56Sopenharmony_ci    int (*getname)(Py_UCS4 code, char* buffer, int buflen,
227db96d56Sopenharmony_ci                   int with_alias_and_seq);
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci    /* Get character code for a given name.
257db96d56Sopenharmony_ci       Same error handling as for getname(). */
267db96d56Sopenharmony_ci    int (*getcode)(const char* name, int namelen, Py_UCS4* code,
277db96d56Sopenharmony_ci                   int with_named_seq);
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci} _PyUnicode_Name_CAPI;
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ci#ifdef __cplusplus
327db96d56Sopenharmony_ci}
337db96d56Sopenharmony_ci#endif
347db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_UCNHASH_H */
35