blob: b6fc52102236af44071cab531230cee841d5e881 [file] [log] [blame]
Tim Peters6d6c1a32001-08-02 04:15:00 +00001/* XXX getter, setter, getsetlist and wrapperbase need 'Py'-prefixed names */
2
3typedef PyObject *(*getter)(PyObject *, void *);
4typedef int (*setter)(PyObject *, PyObject *, void *);
5
6struct getsetlist {
7 char *name;
8 getter get;
9 setter set;
10 void *closure;
11};
12
13typedef PyObject *(*wrapperfunc)(PyObject *self, PyObject *args,
14 void *wrapped);
15
16struct wrapperbase {
17 char *name;
18 wrapperfunc wrapper;
19 char *doc;
20};
21
22extern DL_IMPORT(PyObject *) PyDescr_NewMethod(PyTypeObject *, PyMethodDef *);
23extern DL_IMPORT(PyObject *) PyDescr_NewMember(PyTypeObject *,
24 struct memberlist *);
25extern DL_IMPORT(PyObject *) PyDescr_NewGetSet(PyTypeObject *,
26 struct getsetlist *);
27extern DL_IMPORT(PyObject *) PyDescr_NewWrapper(PyTypeObject *,
28 struct wrapperbase *, void *);
29extern DL_IMPORT(int) PyDescr_IsData(PyObject *);
30
31extern DL_IMPORT(PyObject *) PyDictProxy_New(PyObject *);
32extern DL_IMPORT(PyObject *) PyWrapper_New(PyObject *, PyObject *);