blob: 267e3b0956552d33126936d5a3b190fe83448039 [file] [log] [blame]
Raymond Hettingera690a992003-11-16 16:17:49 +00001
2/* Set object interface */
3
4#ifndef Py_SETOBJECT_H
5#define Py_SETOBJECT_H
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10/*
11This data structure is shared by set and frozenset objects.
12*/
13
14typedef struct {
15 PyObject_HEAD
16 PyObject *data;
17 long hash; /* only used by frozenset objects */
18} PySetObject;
19
20PyAPI_DATA(PyTypeObject) PySet_Type;
21PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
22
Raymond Hettingerf5f41bf2003-11-24 02:57:33 +000023#define PyFrozenSet_CheckExact(ob) ((ob)->ob_type == &PyFrozenSet_Type)
Raymond Hettinger50a4bb32003-11-17 16:42:33 +000024#define PyAnySet_Check(ob) \
25 ((ob)->ob_type == &PySet_Type || (ob)->ob_type == &PyFrozenSet_Type || \
26 PyType_IsSubtype((ob)->ob_type, &PySet_Type) || \
27 PyType_IsSubtype((ob)->ob_type, &PyFrozenSet_Type))
28
Raymond Hettingera690a992003-11-16 16:17:49 +000029#ifdef __cplusplus
30}
31#endif
32#endif /* !Py_SETOBJECT_H */