diff options
-rw-r--r-- | serd/serd.h | 7 | ||||
-rw-r--r-- | src/node.c | 10 |
2 files changed, 17 insertions, 0 deletions
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. */ @@ -24,6 +24,16 @@ 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) { SerdNode copy = *node; |