diff options
author | David Robillard <d@drobilla.net> | 2018-05-27 15:32:12 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-01-13 23:03:39 -0500 |
commit | e2b1c1de25366f70db4cd00f1bb61eda513eb74b (patch) | |
tree | 68223fdbe052b8149b5ebe5bf5d2a68eeb505ce5 /include | |
parent | a10fddf0f697e78325ddcfbc71af8f154ffd2a82 (diff) | |
download | serd-e2b1c1de25366f70db4cd00f1bb61eda513eb74b.tar.gz serd-e2b1c1de25366f70db4cd00f1bb61eda513eb74b.tar.bz2 serd-e2b1c1de25366f70db4cd00f1bb61eda513eb74b.zip |
Move syntax name/extension utilities to public API
Diffstat (limited to 'include')
-rw-r--r-- | include/serd/serd.h | 51 |
1 files changed, 43 insertions, 8 deletions
diff --git a/include/serd/serd.h b/include/serd/serd.h index 57f5af75..766844be 100644 --- a/include/serd/serd.h +++ b/include/serd/serd.h @@ -73,14 +73,6 @@ extern "C" { @{ */ -/// RDF syntax type -typedef enum { - SERD_TURTLE = 1, ///< Terse triples http://www.w3.org/TR/turtle - SERD_NTRIPLES = 2, ///< Line-based triples http://www.w3.org/TR/n-triples/ - SERD_NQUADS = 3, ///< Line-based quads http://www.w3.org/TR/n-quads/ - SERD_TRIG = 4 ///< Terse quads http://www.w3.org/TR/trig/ -} SerdSyntax; - /// Flags indicating certain string properties relevant to serialisation typedef enum { SERD_HAS_NEWLINE = 1u << 0u, ///< Contains line breaks ('\\n' or '\\r') @@ -309,6 +301,49 @@ typedef size_t (*SerdWriteFunc)(const void* SERD_NONNULL buf, /** @} + @defgroup serd_syntax Syntax Utilities + @{ +*/ + +/// Syntax supported by serd +typedef enum { + SERD_TURTLE = 1, ///< Terse triples http://www.w3.org/TR/turtle + SERD_NTRIPLES = 2, ///< Line-based triples http://www.w3.org/TR/n-triples/ + SERD_NQUADS = 3, ///< Line-based quads http://www.w3.org/TR/n-quads/ + SERD_TRIG = 4 ///< Terse quads http://www.w3.org/TR/trig/ +} SerdSyntax; + +/** + Get a syntax by name. + + Case-insensitive, supports "Turtle", "NTriples", "NQuads", and "TriG". Zero + is returned if the name is not recognized. +*/ +SERD_PURE_API +SerdSyntax +serd_syntax_by_name(const char* SERD_NONNULL name); + +/** + Guess a syntax from a filename. + + This uses the file extension to guess the syntax of a file. Zero is + returned if the extension is not recognized. +*/ +SERD_PURE_API +SerdSyntax +serd_guess_syntax(const char* SERD_NONNULL filename); + +/** + Return whether a syntax can represent multiple graphs. + + @return True for #SERD_NQUADS and #SERD_TRIG, false otherwise. +*/ +SERD_CONST_API +bool +serd_syntax_has_graphs(SerdSyntax syntax); + +/** + @} @defgroup serd_uri URI @{ */ |