1 
2 /* Tuple object interface */
3 
4 #ifndef Py_STRUCTSEQ_H
5 #define Py_STRUCTSEQ_H
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 typedef struct PyStructSequence_Field {
11 	char *name;
12 	char *doc;
13 } PyStructSequence_Field;
14 
15 typedef struct PyStructSequence_Desc {
16 	char *name;
17 	char *doc;
18 	struct PyStructSequence_Field *fields;
19 	int n_in_sequence;
20 } PyStructSequence_Desc;
21 
22 extern char* PyStructSequence_UnnamedField;
23 
24 PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type,
25 					   PyStructSequence_Desc *desc);
26 
27 PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type);
28 
29 typedef struct {
30 	PyObject_VAR_HEAD
31 	PyObject *ob_item[1];
32 } PyStructSequence;
33 
34 /* Macro, *only* to be used to fill in brand new objects */
35 #define PyStructSequence_SET_ITEM(op, i, v) \
36 	(((PyStructSequence *)(op))->ob_item[i] = v)
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 #endif /* !Py_STRUCTSEQ_H */
42