aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-07-22 19:15:24 -0400
committerDavid Robillard <d@drobilla.net>2022-01-14 19:37:51 -0500
commit4584e03fce0d702160f8fde910bb3f24647d4036 (patch)
tree754373f973506f2afeb56d76ab45f688348c6579
parentca3a7049506cd1ba91326a36fc02a7319657728c (diff)
downloadserd-4584e03fce0d702160f8fde910bb3f24647d4036.tar.gz
serd-4584e03fce0d702160f8fde910bb3f24647d4036.tar.bz2
serd-4584e03fce0d702160f8fde910bb3f24647d4036.zip
Rename serd_new_simple_node() to serd_new_token()
Things get confusing without a term for this concept (which is roughly "nodes that are not annoying to construct"), so "token" it is.
-rw-r--r--include/serd/serd.h15
-rw-r--r--src/node.c10
-rw-r--r--test/test_node.c7
3 files changed, 13 insertions, 19 deletions
diff --git a/include/serd/serd.h b/include/serd/serd.h
index ded613a9..2bda9829 100644
--- a/include/serd/serd.h
+++ b/include/serd/serd.h
@@ -600,15 +600,20 @@ typedef enum {
} SerdNodeType;
/**
- Create a new "simple" node that is just a string.
+ Create a new "token" node that is just a string.
- A "simple" node has no associated language or datatype. This can be used to
- efficiently create nodes from an already measured string or slice of a
- buffer, which avoids a strlen compared to the friendly constructors.
+ "Token" is just a shorthand used in this API to refer to a node that is not
+ a typed or tagged literal. This can be used to create URIs, blank nodes,
+ variables, and simple string literals.
+
+ Note that string literals constructed with this function will have no flags
+ set, and so will be written as "short" literals (not triple-quoted). To
+ construct long literals, use the more advanced serd_new_literal() with
+ #SERD_IS_LONG.
*/
SERD_API
SerdNode* SERD_ALLOCATED
-serd_new_simple_node(SerdNodeType type, SerdStringView string);
+serd_new_token(SerdNodeType type, SerdStringView string);
/// Create a new plain literal string node from `str`
SERD_API
diff --git a/src/node.c b/src/node.c
index 9468325b..088ab058 100644
--- a/src/node.c
+++ b/src/node.c
@@ -167,12 +167,8 @@ result(const SerdStatus status, const size_t count)
}
SerdNode*
-serd_new_simple_node(const SerdNodeType type, const SerdStringView str)
+serd_new_token(const SerdNodeType type, const SerdStringView str)
{
- if (type != SERD_BLANK && type != SERD_URI && type != SERD_VARIABLE) {
- return NULL;
- }
-
SerdNodeFlags flags = 0u;
const size_t length = str.buf ? str.len : 0u;
SerdNode* node = serd_node_malloc(length, flags, type);
@@ -288,7 +284,7 @@ serd_new_literal(const SerdStringView string,
SerdNode*
serd_new_blank(const SerdStringView str)
{
- return serd_new_simple_node(SERD_BLANK, str);
+ return serd_new_token(SERD_BLANK, str);
}
ExessResult
@@ -463,7 +459,7 @@ serd_node_compare(const SerdNode* const a, const SerdNode* const b)
SerdNode*
serd_new_uri(const SerdStringView str)
{
- return serd_new_simple_node(SERD_URI, str);
+ return serd_new_token(SERD_URI, str);
}
SerdNode*
diff --git a/test/test_node.c b/test/test_node.c
index ef17afe9..efd93ddd 100644
--- a/test/test_node.c
+++ b/test/test_node.c
@@ -450,12 +450,6 @@ test_node_from_substring(void)
}
static void
-test_simple_node(void)
-{
- assert(!serd_new_simple_node(SERD_LITERAL, SERD_STRING("Literal")));
-}
-
-static void
check_copy_equals(const SerdNode* const node)
{
SerdNode* const copy = serd_node_copy(node);
@@ -602,7 +596,6 @@ main(void)
test_node_equals();
test_node_from_syntax();
test_node_from_substring();
- test_simple_node();
test_literal();
test_blank();
test_compare();