17db96d56Sopenharmony_ci#ifndef Py_INTERNAL_STRHEX_H
27db96d56Sopenharmony_ci#define Py_INTERNAL_STRHEX_H
37db96d56Sopenharmony_ci#ifdef __cplusplus
47db96d56Sopenharmony_ciextern "C" {
57db96d56Sopenharmony_ci#endif
67db96d56Sopenharmony_ci
77db96d56Sopenharmony_ci#ifndef Py_BUILD_CORE
87db96d56Sopenharmony_ci#  error "this header requires Py_BUILD_CORE define"
97db96d56Sopenharmony_ci#endif
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci// Returns a str() containing the hex representation of argbuf.
127db96d56Sopenharmony_ciPyAPI_FUNC(PyObject*) _Py_strhex(const
137db96d56Sopenharmony_ci    char* argbuf,
147db96d56Sopenharmony_ci    const Py_ssize_t arglen);
157db96d56Sopenharmony_ci
167db96d56Sopenharmony_ci// Returns a bytes() containing the ASCII hex representation of argbuf.
177db96d56Sopenharmony_ciPyAPI_FUNC(PyObject*) _Py_strhex_bytes(
187db96d56Sopenharmony_ci    const char* argbuf,
197db96d56Sopenharmony_ci    const Py_ssize_t arglen);
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci// These variants include support for a separator between every N bytes:
227db96d56Sopenharmony_ciPyAPI_FUNC(PyObject*) _Py_strhex_with_sep(
237db96d56Sopenharmony_ci    const char* argbuf,
247db96d56Sopenharmony_ci    const Py_ssize_t arglen,
257db96d56Sopenharmony_ci    PyObject* sep,
267db96d56Sopenharmony_ci    const int bytes_per_group);
277db96d56Sopenharmony_ciPyAPI_FUNC(PyObject*) _Py_strhex_bytes_with_sep(
287db96d56Sopenharmony_ci    const char* argbuf,
297db96d56Sopenharmony_ci    const Py_ssize_t arglen,
307db96d56Sopenharmony_ci    PyObject* sep,
317db96d56Sopenharmony_ci    const int bytes_per_group);
327db96d56Sopenharmony_ci
337db96d56Sopenharmony_ci#ifdef __cplusplus
347db96d56Sopenharmony_ci}
357db96d56Sopenharmony_ci#endif
367db96d56Sopenharmony_ci#endif /* !Py_INTERNAL_STRHEX_H */
37