structseq.h 949 Bytes
Newer Older
1 2 3 4 5 6 7 8

/* Tuple object interface */

#ifndef Py_STRUCTSEQ_H
#define Py_STRUCTSEQ_H
#ifdef __cplusplus
extern "C" {
#endif
9

10 11 12 13 14 15 16 17 18 19 20 21
typedef struct PyStructSequence_Field {
	char *name;
	char *doc;
} PyStructSequence_Field;

typedef struct PyStructSequence_Desc {
	char *name;
	char *doc;
	struct PyStructSequence_Field *fields;
	int n_in_sequence;
} PyStructSequence_Desc;

22 23
extern char* PyStructSequence_UnnamedField;

24 25 26
PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type,
					   PyStructSequence_Desc *desc);

27
PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type);
28 29 30 31 32 33 34 35 36 37

typedef struct {
	PyObject_VAR_HEAD
	PyObject *ob_item[1];
} PyStructSequence;

/* Macro, *only* to be used to fill in brand new objects */
#define PyStructSequence_SET_ITEM(op, i, v) \
	(((PyStructSequence *)(op))->ob_item[i] = v)

38 39 40 41
#define PyStructSequence_GET_ITEM(op, i) \
	(((PyStructSequence *)(op))->ob_item[i])


42 43 44 45
#ifdef __cplusplus
}
#endif
#endif /* !Py_STRUCTSEQ_H */