diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2009-09-28 18:15:48 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2009-09-28 18:15:48 +0100 |
commit | d5bebce0286aef5c4b4110c16c22a8ef3dc38405 (patch) | |
tree | 8170219052db026465249b2238589e82192980c0 /json-glib | |
parent | 17fc731ed54b754285bac76c7ac23eac6b96bf24 (diff) | |
download | json-glib-d5bebce0286aef5c4b4110c16c22a8ef3dc38405.tar.gz |
[node] Add HOLDS macros for quick type checking
JsonNode should mimick GValue's API and have macros for easy type checking
Diffstat (limited to 'json-glib')
-rw-r--r-- | json-glib/json-types.h | 51 | ||||
-rw-r--r-- | json-glib/tests/node-test.c | 2 |
2 files changed, 52 insertions, 1 deletions
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"); |