aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--serd/serd.h26
-rw-r--r--src/env.c10
-rw-r--r--src/serd_internal.h6
-rw-r--r--src/uri.c2
-rw-r--r--src/writer.c10
-rw-r--r--tests/serd_test.c3
7 files changed, 30 insertions, 28 deletions
diff --git a/NEWS b/NEWS
index 3f6934dd..a503eaee 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ serd (1.0.0) unstable;
* Add SerdBuffer for mutable buffers to keep SerdChunk const-correct
* Remove useless character counting from API
* Use char* for strings in public API
+ * Rename SerdChunk to SerdStringView
-- David Robillard <d@drobilla.net> Sat, 19 Jan 2019 13:31:12 +0100
diff --git a/serd/serd.h b/serd/serd.h
index db15cfc8..e8aff1e8 100644
--- a/serd/serd.h
+++ b/serd/serd.h
@@ -221,12 +221,12 @@ typedef struct {
} SerdNode;
/**
- An unterminated string fragment.
+ An unterminated immutable slice of a string.
*/
typedef struct {
const char* buf; /**< Start of chunk */
size_t len; /**< Length of chunk in bytes */
-} SerdChunk;
+} SerdStringView;
/**
A mutable buffer in memory.
@@ -251,17 +251,17 @@ typedef struct {
/**
A parsed URI.
- This struct directly refers to chunks in other strings, it does not own any
+ This struct directly refers to slices in other strings, it does not own any
memory itself. Thus, URIs can be parsed and/or resolved against a base URI
in-place without allocating memory.
*/
typedef struct {
- SerdChunk scheme; /**< Scheme */
- SerdChunk authority; /**< Authority */
- SerdChunk path_base; /**< Path prefix if relative */
- SerdChunk path; /**< Path suffix */
- SerdChunk query; /**< Query */
- SerdChunk fragment; /**< Fragment */
+ SerdStringView scheme; /**< Scheme */
+ SerdStringView authority; /**< Authority */
+ SerdStringView path_base; /**< Path prefix if relative */
+ SerdStringView path; /**< Path suffix */
+ SerdStringView query; /**< Query */
+ SerdStringView fragment; /**< Fragment */
} SerdURI;
/**
@@ -731,7 +731,7 @@ bool
serd_env_qualify(const SerdEnv* env,
const SerdNode* uri,
SerdNode* prefix,
- SerdChunk* suffix);
+ SerdStringView* suffix);
/**
Expand `curie`.
@@ -743,8 +743,8 @@ SERD_API
SerdStatus
serd_env_expand(const SerdEnv* env,
const SerdNode* curie,
- SerdChunk* uri_prefix,
- SerdChunk* uri_suffix);
+ SerdStringView* uri_prefix,
+ SerdStringView* uri_suffix);
/**
Expand `node`, which must be a CURIE or URI, to a full URI.
@@ -987,7 +987,7 @@ size_t
serd_buffer_sink(const void* buf, size_t len, void* stream);
/**
- Finish a serialisation to a chunk with serd_buffer_sink().
+ Finish a serialisation to a buffer with serd_buffer_sink().
The returned string is the result of the serialisation, which is NULL
terminated (by this function) and owned by the caller.
diff --git a/src/env.c b/src/env.c
index a27e342e..30d19e17 100644
--- a/src/env.c
+++ b/src/env.c
@@ -158,7 +158,7 @@ bool
serd_env_qualify(const SerdEnv* env,
const SerdNode* uri,
SerdNode* prefix,
- SerdChunk* suffix)
+ SerdStringView* suffix)
{
for (size_t i = 0; i < env->n_prefixes; ++i) {
const SerdNode* const prefix_uri = &env->prefixes[i].uri;
@@ -179,8 +179,8 @@ serd_env_qualify(const SerdEnv* env,
SerdStatus
serd_env_expand(const SerdEnv* env,
const SerdNode* curie,
- SerdChunk* uri_prefix,
- SerdChunk* uri_suffix)
+ SerdStringView* uri_prefix,
+ SerdStringView* uri_suffix)
{
const char* const colon = (const char*)memchr(
curie->buf, ':', curie->n_bytes + 1);
@@ -206,8 +206,8 @@ serd_env_expand_node(const SerdEnv* env,
{
switch (node->type) {
case SERD_CURIE: {
- SerdChunk prefix;
- SerdChunk suffix;
+ SerdStringView prefix;
+ SerdStringView suffix;
if (serd_env_expand(env, node, &prefix, &suffix)) {
return SERD_NODE_NULL;
}
diff --git a/src/serd_internal.h b/src/serd_internal.h
index 3ffb9d4d..c51b88ed 100644
--- a/src/serd_internal.h
+++ b/src/serd_internal.h
@@ -436,7 +436,7 @@ parse_utf8_char(const uint8_t* utf8, size_t* size)
/* URI utilities */
static inline bool
-chunk_equals(const SerdChunk* a, const SerdChunk* b)
+slice_equals(const SerdStringView* a, const SerdStringView* b)
{
return a->len == b->len
&& !strncmp((const char*)a->buf, (const char*)b->buf, a->len);
@@ -466,8 +466,8 @@ static inline size_t
uri_rooted_index(const SerdURI* uri, const SerdURI* root)
{
if (!root || !root->scheme.len ||
- !chunk_equals(&root->scheme, &uri->scheme) ||
- !chunk_equals(&root->authority, &uri->authority)) {
+ !slice_equals(&root->scheme, &uri->scheme) ||
+ !slice_equals(&root->authority, &uri->authority)) {
return 0;
}
diff --git a/src/uri.c b/src/uri.c
index 0dbbcb4f..47d7aa0c 100644
--- a/src/uri.c
+++ b/src/uri.c
@@ -280,7 +280,7 @@ remove_dot_segments(const char* path, size_t len, size_t* up)
/// Merge `base` and `path` in-place
static void
-merge(SerdChunk* base, SerdChunk* path)
+merge(SerdStringView* base, SerdStringView* path)
{
size_t up;
const char* begin = remove_dot_segments(path->buf, path->len, &up);
diff --git a/src/writer.c b/src/writer.c
index 3f198a93..a075f037 100644
--- a/src/writer.c
+++ b/src/writer.c
@@ -480,8 +480,8 @@ write_uri_node(SerdWriter* const writer,
const Field field,
const SerdStatementFlags flags)
{
- SerdNode prefix;
- SerdChunk suffix;
+ SerdNode prefix;
+ SerdStringView suffix;
if (is_inline_start(writer, field, flags)) {
++writer->indent;
@@ -538,9 +538,9 @@ write_curie(SerdWriter* const writer,
const Field field,
const SerdStatementFlags flags)
{
- SerdChunk prefix;
- SerdChunk suffix;
- SerdStatus st;
+ SerdStringView prefix;
+ SerdStringView suffix;
+ SerdStatus st;
switch (writer->syntax) {
case SERD_NTRIPLES:
case SERD_NQUADS:
diff --git a/tests/serd_test.c b/tests/serd_test.c
index ff864b96..c2d70136 100644
--- a/tests/serd_test.c
+++ b/tests/serd_test.c
@@ -363,7 +363,8 @@ main(void)
assert(serd_env_set_base_uri(env, &node));
assert(serd_node_equals(serd_env_get_base_uri(env, NULL), &node));
- SerdChunk prefix, suffix;
+ SerdStringView prefix;
+ SerdStringView suffix;
assert(serd_env_expand(env, &b, &prefix, &suffix));
SerdNode xnode = serd_env_expand_node(env, &node);