summaryrefslogtreecommitdiffstats
path: root/src/sord_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sord_internal.h')
-rw-r--r--src/sord_internal.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/sord_internal.h b/src/sord_internal.h
index 03050db..16d6ef2 100644
--- a/src/sord_internal.h
+++ b/src/sord_internal.h
@@ -22,13 +22,25 @@
#include "sord/sord.h"
+/** Resource node metadata */
+typedef struct {
+ size_t refs_as_obj; ///< References as a quad object
+} SordResourceMetadata;
+
+/** Literal node metadata */
+typedef struct {
+ SordNode* datatype; ///< Optional literal data type URI
+ char lang[16]; ///< Optional language tag
+} SordLiteralMetadata;
+
/** Node */
struct SordNodeImpl {
- SordNode* datatype; ///< Literal data type (ID of a URI node, or 0)
- size_t refs; ///< Reference count (# of containing quads)
- size_t refs_as_obj; ///< References as a quad object
- char lang[16]; ///< Language tag
- SerdNode node; ///< Serd node
+ SerdNode node; ///< Serd node
+ size_t refs; ///< Reference count (# of containing quads)
+ union {
+ SordResourceMetadata res;
+ SordLiteralMetadata lit;
+ } meta;
};
#endif /* SORD_SORD_INTERNAL_H */