diff options
author | David Robillard <d@drobilla.net> | 2018-12-26 11:54:21 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2019-01-05 17:12:38 +0100 |
commit | 31b57fdf337fc906151bb597a0e6ceede374620b (patch) | |
tree | 6b825b63f26a2fc1b203ce1663e156c0b67f9609 | |
parent | d4e594b0825391db76d72fbf092451d86ebe66c2 (diff) | |
download | serd-31b57fdf337fc906151bb597a0e6ceede374620b.tar.gz serd-31b57fdf337fc906151bb597a0e6ceede374620b.tar.bz2 serd-31b57fdf337fc906151bb597a0e6ceede374620b.zip |
Add serd_new_boolean()
-rw-r--r-- | serd/serd.h | 5 | ||||
-rw-r--r-- | src/node.c | 7 | ||||
-rw-r--r-- | tests/serd_test.c | 13 |
3 files changed, 25 insertions, 0 deletions
diff --git a/serd/serd.h b/serd/serd.h index d4aa5f65..8397aae7 100644 --- a/serd/serd.h +++ b/serd/serd.h @@ -664,6 +664,11 @@ SERD_API SerdNode* serd_new_integer(int64_t i, const SerdNode* datatype); +/// Create a new node by serialising `b` into an xsd:boolean string +SERD_API +SerdNode* +serd_new_boolean(bool b); + /** Create a node by serialising `buf` into an xsd:base64Binary string @@ -51,6 +51,7 @@ typedef struct StaticNode { DEFINE_XSD_NODE(decimal) DEFINE_XSD_NODE(integer) +DEFINE_XSD_NODE(boolean) DEFINE_XSD_NODE(base64Binary) static SerdNode* @@ -623,6 +624,12 @@ serd_new_integer(int64_t i, const SerdNode* datatype) } SerdNode* +serd_new_boolean(bool b) +{ + return serd_new_typed_literal(b ? "true" : "false", &serd_xsd_boolean.node); +} + +SerdNode* serd_new_blob(const void* buf, size_t size, bool wrap_lines, diff --git a/tests/serd_test.c b/tests/serd_test.c index ba4f170f..c009090e 100644 --- a/tests/serd_test.c +++ b/tests/serd_test.c @@ -203,6 +203,19 @@ main(void) serd_node_free(node); } + // Test serd_new_boolean + SerdNode* true_node = serd_new_boolean(true); + assert(!strcmp(serd_node_get_string(true_node), "true")); + assert(!strcmp(serd_node_get_string(serd_node_get_datatype(true_node)), + NS_XSD "boolean")); + serd_node_free(true_node); + + SerdNode* false_node = serd_new_boolean(false); + assert(!strcmp(serd_node_get_string(false_node), "false")); + assert(!strcmp(serd_node_get_string(serd_node_get_datatype(false_node)), + NS_XSD "boolean")); + serd_node_free(false_node); + // Test serd_new_blob assert(!serd_new_blob(NULL, 0, true, NULL)); assert(!serd_new_blob("data", 0, true, NULL)); |