From 051f8e0bfdd0083f152197e1da6db70af0bb9793 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 3 Feb 2011 03:08:43 +0000 Subject: Add serd_node_from_string. git-svn-id: http://svn.drobilla.net/serd/trunk@90 490d8e77-9747-427b-9fa3-0b8f29cee8a0 --- serd/serd.h | 7 +++++++ src/node.c | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/serd/serd.h b/serd/serd.h index c19b3b3a..0b90cde7 100644 --- a/serd/serd.h +++ b/serd/serd.h @@ -176,6 +176,13 @@ typedef struct { static const SerdNode SERD_NODE_NULL = { SERD_NOTHING, 0, 0, 0 }; +/** Make a (shallow) node from @a str. + * This measures, but does not copy, @a str. No memory is allocated. + */ +SERD_API +SerdNode +serd_node_from_string(SerdType type, const uint8_t* str); + /** Make a deep copy of @a node. * @return a node that the caller must free with @ref serd_node_free. */ diff --git a/src/node.c b/src/node.c index 0b306489..66e5b5c1 100644 --- a/src/node.c +++ b/src/node.c @@ -22,6 +22,16 @@ #include "serd_internal.h" +SERD_API +SerdNode +serd_node_from_string(SerdType type, const uint8_t* buf) +{ + size_t buf_n_bytes; + const size_t buf_n_chars = serd_strlen(buf, &buf_n_bytes); + SerdNode ret = { type, buf_n_bytes, buf_n_chars, buf }; + return ret; +} + SERD_API SerdNode serd_node_copy(const SerdNode* node) -- cgit v1.2.1