17db96d56Sopenharmony_ci/* Descriptors */
27db96d56Sopenharmony_ci#ifndef Py_DESCROBJECT_H
37db96d56Sopenharmony_ci#define Py_DESCROBJECT_H
47db96d56Sopenharmony_ci#ifdef __cplusplus
57db96d56Sopenharmony_ciextern "C" {
67db96d56Sopenharmony_ci#endif
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_citypedef PyObject *(*getter)(PyObject *, void *);
97db96d56Sopenharmony_citypedef int (*setter)(PyObject *, PyObject *, void *);
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_cistruct PyGetSetDef {
127db96d56Sopenharmony_ci    const char *name;
137db96d56Sopenharmony_ci    getter get;
147db96d56Sopenharmony_ci    setter set;
157db96d56Sopenharmony_ci    const char *doc;
167db96d56Sopenharmony_ci    void *closure;
177db96d56Sopenharmony_ci};
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyClassMethodDescr_Type;
207db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyGetSetDescr_Type;
217db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyMemberDescr_Type;
227db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyMethodDescr_Type;
237db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyWrapperDescr_Type;
247db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyDictProxy_Type;
257db96d56Sopenharmony_ciPyAPI_DATA(PyTypeObject) PyProperty_Type;
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
287db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyDescr_NewClassMethod(PyTypeObject *, PyMethodDef *);
297db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyDescr_NewMember(PyTypeObject *, PyMemberDef *);
307db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *, PyGetSetDef *);
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *);
337db96d56Sopenharmony_ciPyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *);
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci#ifndef Py_LIMITED_API
367db96d56Sopenharmony_ci#  define Py_CPYTHON_DESCROBJECT_H
377db96d56Sopenharmony_ci#  include "cpython/descrobject.h"
387db96d56Sopenharmony_ci#  undef Py_CPYTHON_DESCROBJECT_H
397db96d56Sopenharmony_ci#endif
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ci#ifdef __cplusplus
427db96d56Sopenharmony_ci}
437db96d56Sopenharmony_ci#endif
447db96d56Sopenharmony_ci#endif /* !Py_DESCROBJECT_H */
45