aboutsummaryrefslogtreecommitdiffstats
path: root/serd
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2018-05-12 18:03:13 +0200
committerDavid Robillard <d@drobilla.net>2020-10-27 13:13:58 +0100
commit4f4408029cd8cefc1804d75a03f5c3f0ee7922fa (patch)
treef4e97788064e7659e06e31f68170ac9ce645f54a /serd
parent8b20b3e3bfd186b7b0bbd082a979c7fb86a52479 (diff)
downloadserd-4f4408029cd8cefc1804d75a03f5c3f0ee7922fa.tar.gz
serd-4f4408029cd8cefc1804d75a03f5c3f0ee7922fa.tar.bz2
serd-4f4408029cd8cefc1804d75a03f5c3f0ee7922fa.zip
Set datatypes on integer, decimal, and base64 nodes
Diffstat (limited to 'serd')
-rw-r--r--serd/serd.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/serd/serd.h b/serd/serd.h
index 513ac7dc..bf1ac8d5 100644
--- a/serd/serd.h
+++ b/serd/serd.h
@@ -582,18 +582,27 @@ serd_node_new_relative_uri(const char* str,
represent a double and float, respectively.
@param d The value for the new node.
+
@param frac_digits The maximum number of digits after the decimal place.
+
+ @param datatype Datatype of node, may be NULL in which case the node has
+ type xsd:decimal.
*/
SERD_API
SerdNode*
-serd_node_new_decimal(double d, unsigned frac_digits);
+serd_node_new_decimal(double d, unsigned frac_digits, const SerdNode* datatype);
/**
Create a new node by serialising `i` into an xsd:integer string.
+
+ @param i Integer value to serialise.
+
+ @param datatype Datatype of node, may be NULL in which case the node has
+ type xsd:integer.
*/
SERD_API
SerdNode*
-serd_node_new_integer(int64_t i);
+serd_node_new_integer(int64_t i, const SerdNode* datatype);
/**
Create a node by serialising `buf` into an xsd:base64Binary string.
@@ -601,12 +610,19 @@ serd_node_new_integer(int64_t i);
binary data, which can be decoded using serd_base64_decode().
@param buf Raw binary input data.
+
@param size Size of `buf`.
+
@param wrap_lines Wrap lines at 76 characters to conform to RFC 2045.
+
+ @param datatype Datatype of node, may be NULL in which case the node has
+ type xsd:base64Binary.
*/
SERD_API
-SerdNode*
-serd_node_new_blob(const void* buf, size_t size, bool wrap_lines);
+SerdNode* serd_node_new_blob(const void* buf,
+ size_t size,
+ bool wrap_lines,
+ const SerdNode* datatype);
/**
Return a deep copy of `node`.