Otherwise the enum symbols are not visible outside the struct in C++.
Reviewed-by: Thomas Munro <thomas.munro@enterprisedb.com>
#define JB_ROOT_IS_ARRAY(jbp_) ( *(uint32*) VARDATA(jbp_) & JB_FARRAY)
+enum jbvType
+{
+ /* Scalar types */
+ jbvNull = 0x0,
+ jbvString,
+ jbvNumeric,
+ jbvBool,
+ /* Composite types */
+ jbvArray = 0x10,
+ jbvObject,
+ /* Binary (i.e. struct Jsonb) jbvArray/jbvObject */
+ jbvBinary
+};
+
/*
* JsonbValue: In-memory representation of Jsonb. This is a convenient
* deserialized representation, that can easily support using the "val"
*/
struct JsonbValue
{
- enum
- {
- /* Scalar types */
- jbvNull = 0x0,
- jbvString,
- jbvNumeric,
- jbvBool,
- /* Composite types */
- jbvArray = 0x10,
- jbvObject,
- /* Binary (i.e. struct Jsonb) jbvArray/jbvObject */
- jbvBinary
- } type; /* Influences sort order */
+ jbvType type; /* Influences sort order */
union
{