diff options
| -rw-r--r-- | doc/reference/json-glib-sections.txt | 7 | ||||
| -rw-r--r-- | json-glib/json-types.h | 51 | ||||
| -rw-r--r-- | json-glib/tests/node-test.c | 2 |
3 files changed, 58 insertions, 2 deletions
diff --git a/doc/reference/json-glib-sections.txt b/doc/reference/json-glib-sections.txt index 86a049c..2fa0058 100644 --- a/doc/reference/json-glib-sections.txt +++ b/doc/reference/json-glib-sections.txt @@ -84,8 +84,13 @@ json_array_get_type <FILE>json-node</FILE> <TITLE>JSON Node</TITLE> JsonNodeType -JSON_NODE_TYPE JsonNode +JSON_NODE_TYPE +JSON_NODE_HOLDS +JSON_NODE_HOLDS_VALUE +JSON_NODE_HOLDS_OBJECT +JSON_NODE_HOLDS_ARRAY +JSON_NODE_HOLDS_NULL json_node_new json_node_copy json_node_free diff --git a/json-glib/json-types.h b/json-glib/json-types.h index 3ea885f..5793179 100644 --- a/json-glib/json-types.h +++ b/json-glib/json-types.h @@ -40,6 +40,57 @@ G_BEGIN_DECLS */ #define JSON_NODE_TYPE(node) (json_node_get_node_type ((node))) +/** + * JSON_NODE_HOLDS: + * @node: a #JsonNode + * @t: a #JsonNodeType + * + * Evaluates to %TRUE if the @node holds type @t + * + * Since: 0.10 + */ +#define JSON_NODE_HOLDS(node,t) (json_node_get_node_type ((node)) == (t)) + +/** + * JSON_NODE_HOLDS_VALUE: + * @node: a #JsonNode + * + * Evaluates to %TRUE if @node holds a %JSON_NODE_VALUE + * + * Since: 0.10 + */ +#define JSON_NODE_HOLDS_VALUE(node) (JSON_NODE_HOLDS ((node), JSON_NODE_VALUE)) + +/** + * JSON_NODE_HOLDS_OBJECT: + * @node: a #JsonNode + * + * Evaluates to %TRUE if @node holds a %JSON_NODE_OBJECT + * + * Since: 0.10 + */ +#define JSON_NODE_HOLDS_OBJECT(node) (JSON_NODE_HOLDS ((node), JSON_NODE_OBJECT)) + +/** + * JSON_NODE_HOLDS_ARRAY: + * @node: a #JsonNode + * + * Evaluates to %TRUE if @node holds a %JSON_NODE_ARRAY + * + * Since: 0.10 + */ +#define JSON_NODE_HOLDS_ARRAY(node) (JSON_NODE_HOLDS ((node), JSON_NODE_ARRAY)) + +/** + * JSON_NODE_HOLDS_NULL: + * @node: a #JsonNode + * + * Evaluates to %TRUE if @node holds a %JSON_NODE_NULL + * + * Since: 0.10 + */ +#define JSON_NODE_HOLDS_NULL(node) (JSON_NODE_HOLDS ((node), JSON_NODE_NULL)) + #define JSON_TYPE_NODE (json_node_get_type ()) #define JSON_TYPE_OBJECT (json_object_get_type ()) #define JSON_TYPE_ARRAY (json_array_get_type ()) diff --git a/json-glib/tests/node-test.c b/json-glib/tests/node-test.c index 7c0336d..da979a4 100644 --- a/json-glib/tests/node-test.c +++ b/json-glib/tests/node-test.c @@ -60,7 +60,7 @@ test_null (void) { JsonNode *node = json_node_new (JSON_NODE_NULL); - g_assert_cmpint (json_node_get_node_type (node), ==, JSON_NODE_NULL); + g_assert (JSON_NODE_HOLDS_NULL (node)); g_assert_cmpint (json_node_get_value_type (node), ==, G_TYPE_INVALID); g_assert_cmpstr (json_node_type_name (node), ==, "NULL"); |
