summaryrefslogtreecommitdiffstats
path: root/include/zix
AgeCommit message (Collapse)AuthorFilesLines
2021-09-16Add a simple bump pointer allocatorDavid Robillard1-0/+52
2021-09-15Add redundant forward declaration to appease clang-tidyDavid Robillard1-0/+2
2021-09-14Add aligned allocation interface and use it in ZixBTreeDavid Robillard1-8/+54
2021-09-14Fix whitespace in allocator function type definitionsDavid Robillard1-12/+14
2021-09-14Make ZixAllocator a single flat structDavid Robillard5-57/+54
I can never decide between these two patterns for polymorphic objects in C, but this one seems more appropriate here since it's more conducive to inheritance.
2021-09-11Fix zix_btree_free() nullable annotationDavid Robillard1-1/+1
2021-09-10Adopt REUSE machine-readable licensing standardDavid Robillard11-165/+22
2021-09-10Add custom allocator supportDavid Robillard5-10/+170
2021-09-10Add nullability annotationsDavid Robillard8-128/+171
This allows clang to issue warnings at compile time when null is passed to a non-null parameter. For public entry points, also add assertions to catch such issues when the compiler does not support this.
2021-09-10Move attribute definitions to a separate headerDavid Robillard8-55/+87
2021-09-10Rewrite ZixHash as a flat table with open addressingDavid Robillard1-39/+238
2021-09-10Replace CRC32 digest with more modern and appropriate algorithmsDavid Robillard1-15/+59
This makes the hassle of platform-specific code go away, and instead uses portable implementations of relatively standard modern hash algorithms. CRC32 is not great as a hash function anyway, though it is very fast when hardware accelerated.
2021-09-10Add a user handle to destroy callbackDavid Robillard3-4/+9
2021-09-10Simplify BTree implementationDavid Robillard1-7/+31
2021-09-10Allow ZixBTreeIter to be allocated on the stackDavid Robillard2-41/+54
2021-09-10Remove destroy field of BTree and add zix_btree_clear()David Robillard1-3/+18
If this is used, it is only when clearing or freeing a tree. Allowing it to be given as a parameter directly there is clearer and avoids bloating the tree itself with information that isn't needed.
2021-09-10Fix conversion warningsDavid Robillard1-2/+3
2021-09-10Remove ZixStrindexDavid Robillard1-59/+0
2021-07-17Remove ZixSortedArrayDavid Robillard1-122/+0
2021-07-17Use line comments where appropriateDavid Robillard11-211/+78
2021-06-30Allow ZIX_API to be overriddenDavid Robillard1-8/+10
2020-12-31Update copyright headersDavid Robillard11-11/+11
2020-12-31Remove ZixChunkDavid Robillard1-50/+0
2020-12-31Switch to MesonDavid Robillard1-13/+6
2020-12-31Remove entire library headerDavid Robillard1-35/+0
2020-12-31Fix use of reserved identifiersDavid Robillard1-1/+1
2020-12-31Remove ZIX_PRIVATE and ZIX_INLINE mechanismsDavid Robillard1-5/+0
A normal C library ought to be good enough for anybody.
2020-12-31Separate source from headersDavid Robillard13-0/+1618