| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 1 |  | 
| Benjamin Peterson | da3b5bf | 2010-08-09 15:53:58 +0000 | [diff] [blame] | 2 | /* Named tuple object interface */ | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 3 |  | 
 | 4 | #ifndef Py_STRUCTSEQ_H | 
 | 5 | #define Py_STRUCTSEQ_H | 
 | 6 | #ifdef __cplusplus | 
 | 7 | extern "C" { | 
 | 8 | #endif | 
| Fred Drake | 330f72c | 2002-10-17 19:48:27 +0000 | [diff] [blame] | 9 |  | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 10 | typedef struct PyStructSequence_Field { | 
| Serhiy Storchaka | 007d7ff | 2016-11-22 07:58:08 +0200 | [diff] [blame] | 11 |     const char *name; | 
 | 12 |     const char *doc; | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 13 | } PyStructSequence_Field; | 
 | 14 |  | 
 | 15 | typedef struct PyStructSequence_Desc { | 
| Serhiy Storchaka | 007d7ff | 2016-11-22 07:58:08 +0200 | [diff] [blame] | 16 |     const char *name; | 
 | 17 |     const char *doc; | 
| Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 18 |     struct PyStructSequence_Field *fields; | 
 | 19 |     int n_in_sequence; | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 20 | } PyStructSequence_Desc; | 
 | 21 |  | 
| Martin v. Löwis | f607bda | 2002-10-16 18:27:39 +0000 | [diff] [blame] | 22 | extern char* PyStructSequence_UnnamedField; | 
 | 23 |  | 
| Martin v. Löwis | 4d0d471 | 2010-12-03 20:14:31 +0000 | [diff] [blame] | 24 | #ifndef Py_LIMITED_API | 
| Fred Drake | 330f72c | 2002-10-17 19:48:27 +0000 | [diff] [blame] | 25 | PyAPI_FUNC(void) PyStructSequence_InitType(PyTypeObject *type, | 
| Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 26 |                                            PyStructSequence_Desc *desc); | 
| Victor Stinner | 1c8f059 | 2013-07-22 22:24:54 +0200 | [diff] [blame] | 27 | PyAPI_FUNC(int) PyStructSequence_InitType2(PyTypeObject *type, | 
 | 28 |                                            PyStructSequence_Desc *desc); | 
| Martin v. Löwis | 4d0d471 | 2010-12-03 20:14:31 +0000 | [diff] [blame] | 29 | #endif | 
 | 30 | PyAPI_FUNC(PyTypeObject*) PyStructSequence_NewType(PyStructSequence_Desc *desc); | 
| Fred Drake | 330f72c | 2002-10-17 19:48:27 +0000 | [diff] [blame] | 31 |  | 
| Mark Hammond | 91a681d | 2002-08-12 07:21:58 +0000 | [diff] [blame] | 32 | PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 33 |  | 
| Martin v. Löwis | 4d0d471 | 2010-12-03 20:14:31 +0000 | [diff] [blame] | 34 | #ifndef Py_LIMITED_API | 
| Benjamin Peterson | ccabcd4 | 2010-07-07 20:54:01 +0000 | [diff] [blame] | 35 | typedef PyTupleObject PyStructSequence; | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 36 |  | 
 | 37 | /* Macro, *only* to be used to fill in brand new objects */ | 
| Benjamin Peterson | ccabcd4 | 2010-07-07 20:54:01 +0000 | [diff] [blame] | 38 | #define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM(op, i, v) | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 39 |  | 
| Benjamin Peterson | ccabcd4 | 2010-07-07 20:54:01 +0000 | [diff] [blame] | 40 | #define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM(op, i) | 
| Martin v. Löwis | 4d0d471 | 2010-12-03 20:14:31 +0000 | [diff] [blame] | 41 | #endif | 
| Skip Montanaro | 41cfce9 | 2007-08-24 21:11:00 +0000 | [diff] [blame] | 42 |  | 
| Martin v. Löwis | 4d0d471 | 2010-12-03 20:14:31 +0000 | [diff] [blame] | 43 | PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*); | 
 | 44 | PyAPI_FUNC(PyObject*) PyStructSequence_GetItem(PyObject*, Py_ssize_t); | 
| Skip Montanaro | 41cfce9 | 2007-08-24 21:11:00 +0000 | [diff] [blame] | 45 |  | 
| Guido van Rossum | 98bf58f | 2001-10-18 20:34:25 +0000 | [diff] [blame] | 46 | #ifdef __cplusplus | 
 | 47 | } | 
 | 48 | #endif | 
 | 49 | #endif /* !Py_STRUCTSEQ_H */ |