aboutsummaryrefslogtreecommitdiffstats
path: root/src/nodes.c
AgeCommit message (Collapse)AuthorFilesLines
2022-01-28[TESTED] Use a custom allocator to simplify SerdNodes implementationDavid Robillard1-129/+137
Also reduces the amount of code duplication in general, since the "measure with the constructor then allocate and actually construct" pattern (more or less) only needs to be implemented for a given node type in one place.
2022-01-28Add support for xsd:hexBinary literalsDavid Robillard1-3/+28
2022-01-28Add serd_nodes_file_uri()David Robillard1-0/+26
2022-01-28Expose serd_nodes_token()David Robillard1-1/+1
2022-01-28Consolidate number support into a single "value" APIDavid Robillard1-20/+2
2022-01-28Remove datatype arguments from integer and base64 constructorsDavid Robillard1-14/+7
2022-01-28Add custom allocator supportDavid Robillard1-37/+66
2022-01-28Update zix and make it a proper subprojectDavid Robillard1-1/+1
2022-01-28Use more human-readable status codesDavid Robillard1-2/+2
2022-01-28Add assertions for all non-null pointers in the public APIDavid Robillard1-0/+4
Clang issues warnings at build time based on the SERD_NONNULL annotations, which is a much better approach in general. However, it does not cover cases where the API is being used with another compiler, or without a compiler that can statically check things at all (such as Python or other dynamic language bindings). In those situations, getting a clear assertion message is a lot less confusing than a random crash somewhere in serd, and it makes it clear that the bug is in the caller, so I think it's worth the tedious verbosity.
2022-01-14Avoid dynamic allocation when fetching interned nodesDavid Robillard1-68/+399
This is more or less a total rewrite of SerdNodes and the underlying ZixHash to make efficient use of the new node construction API.
2022-01-14Expose low-level node construction APIDavid Robillard1-1/+1
2022-01-14Preserve long or short quoting from input documentsDavid Robillard1-13/+6
2022-01-14Remove SERD_CURIE node datatype entirelyDavid Robillard1-6/+0
2022-01-13Add SerdNodes for storing a cache of interned nodesDavid Robillard1-0/+205