diff options
| -rw-r--r-- | src/basic_traits.c | 1 | ||||
| -rw-r--r-- | src/basic_traits.h | 1 | ||||
| -rw-r--r-- | src/hash_table.c | 3 | ||||
| -rw-r--r-- | src/hash_table.h | 3 | ||||
| -rw-r--r-- | src/pqueue.c | 1 | ||||
| -rw-r--r-- | src/pqueue.h | 1 | ||||
| -rw-r--r-- | src/type_alias.h | 1 | ||||
| -rw-r--r-- | src/vec.c | 1 | ||||
| -rw-r--r-- | src/vec.h | 1 |
9 files changed, 13 insertions, 0 deletions
diff --git a/src/basic_traits.c b/src/basic_traits.c index 386c72f..e3e6b1b 100644 --- a/src/basic_traits.c +++ b/src/basic_traits.c @@ -25,6 +25,7 @@ BASIC_TRAITS_IMPL(UInt); BASIC_TRAITS_IMPL(ULong); BASIC_TRAITS_IMPL(Double); BASIC_TRAITS_IMPL(Float); +BASIC_TRAITS_IMPL(VoidPtr); bool String_eq(String* lhs, String *rhs) { return strcmp(*lhs, *rhs) == 0; diff --git a/src/basic_traits.h b/src/basic_traits.h index 2bc4d8c..7c70863 100644 --- a/src/basic_traits.h +++ b/src/basic_traits.h @@ -17,6 +17,7 @@ BASIC_TRAITS_DEF(UInt); BASIC_TRAITS_DEF(ULong); BASIC_TRAITS_DEF(Double); BASIC_TRAITS_DEF(Float); +BASIC_TRAITS_DEF(VoidPtr); BASIC_TRAITS_DEF(String); diff --git a/src/hash_table.c b/src/hash_table.c index 8d97875..0e7bd41 100644 --- a/src/hash_table.c +++ b/src/hash_table.c @@ -12,8 +12,11 @@ HASH_TABLE_IMPL(String, Int); HASH_TABLE_IMPL(String, String); HASH_TABLE_IMPL(String, Double); +HASH_TABLE_IMPL(String, VoidPtr); HASH_TABLE_IMPL(Int, Int); HASH_TABLE_IMPL(Int, Double); +HASH_TABLE_IMPL(VoidPtr, Int); +HASH_TABLE_IMPL(VoidPtr, String); static void rebuild(HashTable *ht, VoidHashFn hash, VoidEqFn eq) { diff --git a/src/hash_table.h b/src/hash_table.h index 857c688..429142c 100644 --- a/src/hash_table.h +++ b/src/hash_table.h @@ -79,8 +79,11 @@ typedef struct hash_table HashTable; HASH_TABLE_DEF(String, Int); HASH_TABLE_DEF(String, String); HASH_TABLE_DEF(String, Double); +HASH_TABLE_DEF(String, VoidPtr); HASH_TABLE_DEF(Int, Int); HASH_TABLE_DEF(Int, Double); +HASH_TABLE_DEF(VoidPtr, Int); +HASH_TABLE_DEF(VoidPtr, String); void init_hash_table(HashTable *ht, int64_t elemsz, int64_t cap); bool hash_table_insert(HashTable *ht, void *elem, VoidHashFn hash, VoidEqFn eq); diff --git a/src/pqueue.c b/src/pqueue.c index b1cd733..d070735 100644 --- a/src/pqueue.c +++ b/src/pqueue.c @@ -14,3 +14,4 @@ PQUEUE_IMPL(ULong); PQUEUE_IMPL(Double); PQUEUE_IMPL(Float); PQUEUE_IMPL(String); +PQUEUE_IMPL(VoidPtr); diff --git a/src/pqueue.h b/src/pqueue.h index 34b8a55..d91b9a2 100644 --- a/src/pqueue.h +++ b/src/pqueue.h @@ -23,6 +23,7 @@ PQUEUE_DEF(ULong); PQUEUE_DEF(Double); PQUEUE_DEF(Float); PQUEUE_DEF(String); +PQUEUE_DEF(VoidPtr); #define PQUEUE_IMPL(T) \ static int T##PQueue_cmp(T##PQueue *self, int a, int b) { \ diff --git a/src/type_alias.h b/src/type_alias.h index ae6b7ff..7af783a 100644 --- a/src/type_alias.h +++ b/src/type_alias.h @@ -13,6 +13,7 @@ typedef char Char; typedef float Float; typedef double Double; typedef const char *String; +typedef const void *VoidPtr; typedef uint64_t (*VoidHashFn)(void*); typedef bool (*VoidEqFn)(void*, void*); @@ -11,3 +11,4 @@ VECTOR_IMPL(ULong); VECTOR_IMPL(Double); VECTOR_IMPL(Float); VECTOR_IMPL(String); +VECTOR_IMPL(VoidPtr); @@ -92,5 +92,6 @@ VECTOR_DEF(ULong); VECTOR_DEF(Double); VECTOR_DEF(Float); VECTOR_DEF(String); +VECTOR_DEF(VoidPtr); #endif |
