aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-10-14 23:26:41 +0200
committerDavid Robillard <d@drobilla.net>2021-03-08 23:36:08 -0500
commit1fd33e0a85bdf6bcc4f8138940462c4a4a391175 (patch)
treefab500d072049701370f45c5ae2af76683d8fd1f /include
parent7efaf2431b9c1a96f6ed2e28626aff4886efc749 (diff)
downloadserd-1fd33e0a85bdf6bcc4f8138940462c4a4a391175.tar.gz
serd-1fd33e0a85bdf6bcc4f8138940462c4a4a391175.tar.bz2
serd-1fd33e0a85bdf6bcc4f8138940462c4a4a391175.zip
Add support for converting literals to canonical form
Diffstat (limited to 'include')
-rw-r--r--include/serd/serd.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/include/serd/serd.h b/include/serd/serd.h
index 93e280dc..8eb5470d 100644
--- a/include/serd/serd.h
+++ b/include/serd/serd.h
@@ -1462,6 +1462,32 @@ serd_sink_write_end(const SerdSink* SERD_NONNULL sink,
/**
@}
+ @defgroup serd_stream_processing Stream Processing
+ @{
+*/
+
+/// Flags that control canonical node transformation
+typedef enum {
+ SERD_CANON_LAX = 1u << 0u, ///< Tolerate and pass through invalid input
+} SerdCanonFlag;
+
+/// Bitwise OR of SerdCanonFlag values
+typedef uint32_t SerdCanonFlags;
+
+/**
+ Return a sink that transforms literals to canonical form where possible.
+
+ The returned sink acts like `target` in all respects, except literal nodes
+ in statements may be modified from the original.
+*/
+SERD_API
+SerdSink* SERD_ALLOCATED
+serd_canon_new(const SerdWorld* SERD_NULLABLE world,
+ const SerdSink* SERD_NONNULL target,
+ SerdReaderFlags flags);
+
+/**
+ @}
@defgroup serd_reader Reader
@{
*/