aboutsummaryrefslogtreecommitdiffstats
path: root/serd
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-05-11 22:27:18 +0000
committerDavid Robillard <d@drobilla.net>2011-05-11 22:27:18 +0000
commit926f29ed81a34a50c9221a2d562119db84a136cb (patch)
tree382406a7c0bb3ba60f364339cffec431b9e66c96 /serd
parentefd2a2ecb17a8c633f634c2cf38fb8be48db9af5 (diff)
downloadserd-926f29ed81a34a50c9221a2d562119db84a136cb.tar.gz
serd-926f29ed81a34a50c9221a2d562119db84a136cb.tar.bz2
serd-926f29ed81a34a50c9221a2d562119db84a136cb.zip
Create SerdNodeFlags typedef for flags.
Expose serd_strlen. Make serd_node_copy tolerate a NULL parameter. git-svn-id: http://svn.drobilla.net/serd/trunk@168 490d8e77-9747-427b-9fa3-0b8f29cee8a0
Diffstat (limited to 'serd')
-rw-r--r--serd/serd.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/serd/serd.h b/serd/serd.h
index 1e7da13c..5c802a79 100644
--- a/serd/serd.h
+++ b/serd/serd.h
@@ -191,13 +191,18 @@ typedef enum {
} SerdNodeFlag;
/**
+ Bitwise OR of SerdNodeFlag values.
+*/
+typedef uint32_t SerdNodeFlags;
+
+/**
A syntactic RDF node.
*/
typedef struct {
const uint8_t* buf; /**< Value string */
size_t n_bytes; /**< Size in bytes (including null) */
size_t n_chars; /**< Length in characters */
- uint32_t flags; /**< Bitwise OR of SerdNodeFlag values */
+ SerdNodeFlags flags; /**< String properties */
SerdType type; /**< Node type */
} SerdNode;
@@ -241,6 +246,17 @@ typedef enum {
} SerdStyle;
/**
+ UTF-8 strlen.
+ @return Length of @c str in characters.
+ @param str A null-terminated UTF-8 string.
+ @param n_bytes (Output) Set to the size of @a str in bytes (incl. NULL).
+ @param flags (Output) Set to the applicable flags.
+*/
+SERD_API
+size_t
+serd_strlen(const uint8_t* str, size_t* n_bytes, SerdNodeFlags* flags);
+
+/**
@name URI
@{
*/