summaryrefslogtreecommitdiffstats
path: root/src/sord_internal.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-08-10 03:20:03 +0000
committerDavid Robillard <d@drobilla.net>2012-08-10 03:20:03 +0000
commit1144d52d67083cb2f2709f2f43c3b7c259c37d9c (patch)
tree908c695300fa22a8594a483b53a6ce8a317a58f2 /src/sord_internal.h
parentbe0379f60c704cc737ac0063c341121c7de7b2fb (diff)
downloadsord-1144d52d67083cb2f2709f2f43c3b7c259c37d9c.tar.gz
sord-1144d52d67083cb2f2709f2f43c3b7c259c37d9c.tar.bz2
sord-1144d52d67083cb2f2709f2f43c3b7c259c37d9c.zip
Shave 8 bytes off of SordNode.
git-svn-id: http://svn.drobilla.net/sord/trunk@251 3d64ff67-21c5-427c-a301-fe4f08042e5a
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 */