|  |  | 
|  | /* Tuple object interface */ | 
|  |  | 
|  | #ifndef Py_STRUCTSEQ_H | 
|  | #define Py_STRUCTSEQ_H | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | 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; | 
|  |  | 
|  | extern char* PyStructSequence_UnnamedField; | 
|  |  | 
|  | PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type, | 
|  | PyStructSequence_Desc *desc); | 
|  |  | 
|  | PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); | 
|  |  | 
|  | 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) | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif /* !Py_STRUCTSEQ_H */ |