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>2019-12-19 20:52:39 -0500
commitd7c7506a6f4af1918ba06d7730568b7858c11539 (patch)
treeae939bae9c7c6f41f6bf173a129b924553c94690 /serd
parent9a2f489a7f6bc60e3f8ccc3881f3fbf8ebd87eda (diff)
downloadserd-d7c7506a6f4af1918ba06d7730568b7858c11539.tar.gz
serd-d7c7506a6f4af1918ba06d7730568b7858c11539.tar.bz2
serd-d7c7506a6f4af1918ba06d7730568b7858c11539.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 aceb9cdc..9bbe6812 100644
--- a/serd/serd.h
+++ b/serd/serd.h
@@ -594,18 +594,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.
@@ -613,12 +622,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 the type of a node (SERD_URI, SERD_BLANK, or SERD_LITERAL).