mappings: Separate mapping methods into read-only and read-write.
authorMark Wooding <mdw@distorted.org.uk>
Mon, 6 Mar 2006 16:56:41 +0000 (16:56 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 6 Mar 2006 16:58:25 +0000 (16:58 +0000)
catacomb-python.h

index 40ac758..fa99298 100644 (file)
@@ -256,7 +256,7 @@ extern PyMethodDef *donemethods(void);
 #define GMAP_KWMETHDECL(func, doc)                                     \
   extern PyObject *gmapmeth_##func(PyObject *, PyObject *, PyObject *);
 
-#define GMAP_DOMETHODS(METH, KWMETH)                                   \
+#define GMAP_DOROMETHODS(METH, KWMETH)                                 \
   METH (has_key,       "D.has_key(KEY) -> BOOL")                       \
   METH (keys,          "D.keys() -> LIST")                             \
   METH (values,        "D.values() -> LIST")                           \
@@ -264,14 +264,18 @@ extern PyMethodDef *donemethods(void);
   METH (iterkeys,      "D.iterkeys() -> ITER")                         \
   METH (itervalues,    "D.itervalues() -> ITER")                       \
   METH (iteritems,     "D.iteritems() -> ITER")                        \
-  METH (clear,         "D.clear()")                                    \
   KWMETH(get,          "D.get(KEY, [default = None]) -> VALUE")        \
+
+#define GMAP_DOMETHODS(METH, KWMETH)                                   \
+  GMAP_DOROMETHODS(METH, KWMETH)                                       \
+  METH (clear,         "D.clear()")                                    \
   KWMETH(setdefault,   "D.setdefault(K, [default = None]) -> VALUE")   \
   KWMETH(pop,          "D.pop(KEY, [default = <error>]) -> VALUE")     \
   METH (popitem,       "D.popitem() -> (KEY, VALUE)")                  \
   METH (update,        "D.update(MAP)")
 
 GMAP_DOMETHODS(GMAP_METHDECL, GMAP_KWMETHDECL)
+#define GMAP_ROMETHODS GMAP_DOROMETHODS(GMAP_METH, GMAP_KWMETH)
 #define GMAP_METHODS GMAP_DOMETHODS(GMAP_METH, GMAP_KWMETH)
 extern int gmap_pysize(PyObject *);
 extern PySequenceMethods gmap_pysequence;