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-04-13 19:15:32 +0200
commit29cfc326f8f64d8327597f2218f0caefeed4560f (patch)
tree3447ef781eb0221a34a1c7e6e71fe2d8421df7c4 /serd
parente805c03be2bd1e9cee0ba5ce2c3f36f6fd913101 (diff)
downloadserd-29cfc326f8f64d8327597f2218f0caefeed4560f.tar.gz
serd-29cfc326f8f64d8327597f2218f0caefeed4560f.tar.bz2
serd-29cfc326f8f64d8327597f2218f0caefeed4560f.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 9add3d13..b4d5afcc 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 the type of a node (SERD_URI, SERD_BLANK, or SERD_LITERAL).