diff options
Diffstat (limited to 'lang_ext/python/definition.h')
-rw-r--r-- | lang_ext/python/definition.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/lang_ext/python/definition.h b/lang_ext/python/definition.h index 8731b8a..040019d 100644 --- a/lang_ext/python/definition.h +++ b/lang_ext/python/definition.h @@ -18,14 +18,28 @@ extern "C" { typedef struct { PyObject_HEAD + struct upb_context *context; +} PyUpb_Context; + +typedef struct { + PyObject_HEAD struct upb_msgdef *def; -} PyUpb_MessageDefinition; + PyUpb_Context *context; +} PyUpb_MsgDef; -extern PyTypeObject PyUpb_MessageDefinitionType; +extern PyTypeObject PyUpb_MsgDefType; /* What format string should be passed to PyArg_ParseTuple to get just a raw * string of bytes and a length. */ -extern const char *bytes_format; +#if PY_MAJOR_VERSION >= 3 +#define BYTES_FORMAT "y#" +#else +#define BYTES_FORMAT "s#" +#endif + +PyUpb_MsgDef *get_or_create_msgdef(struct upb_msgdef *def); + +#define RETURN_BOOL(val) if(val) { Py_RETURN_TRUE; } else { Py_RETURN_FALSE; } #ifdef __cplusplus } /* extern "C" */ |