source: trunk/include/python2.4/setobject.h @ 88

Last change on this file since 88 was 88, checked in by cxsong, 19 years ago

copied from /opt/rappture/include

File size: 1.0 KB
Line 
1
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        PyObject *weakreflist; /* List of weak references */
19
20        /* Invariants:
21         *     data is a dictionary whose values are all True.
22         *     data points to the same dict for the whole life of the set.
23         * For frozensets only:
24         *     data is immutable.
25         *     hash is the hash of the frozenset or -1 if not computed yet.
26         */
27} PySetObject;
28
29PyAPI_DATA(PyTypeObject) PySet_Type;
30PyAPI_DATA(PyTypeObject) PyFrozenSet_Type;
31
32#define PyFrozenSet_CheckExact(ob) ((ob)->ob_type == &PyFrozenSet_Type)
33#define PyAnySet_Check(ob) \
34        ((ob)->ob_type == &PySet_Type || (ob)->ob_type == &PyFrozenSet_Type || \
35          PyType_IsSubtype((ob)->ob_type, &PySet_Type) || \
36          PyType_IsSubtype((ob)->ob_type, &PyFrozenSet_Type))
37
38#ifdef __cplusplus
39}
40#endif
41#endif /* !Py_SETOBJECT_H */
Note: See TracBrowser for help on using the repository browser.