From af1ab5687285eb43e009de39afcbdad991c80047 Mon Sep 17 00:00:00 2001 From: Robear Selwans Date: Wed, 5 Jan 2022 03:26:03 +0200 Subject: [PATCH] Changed ev_hash_fn signature and added default murmur3 Signed-off-by: Robear Selwans --- ev_types.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ev_types.h b/ev_types.h index 77a3bdc..6977c51 100644 --- a/ev_types.h +++ b/ev_types.h @@ -3,10 +3,11 @@ #include "ev_macros.h" #include "ev_internal.h" +#include "ev_hash.h" typedef void(*ev_copy_fn)(void *dst, void *src); typedef void(*ev_free_fn)(void *self); -typedef __ev_uint64_t(*ev_hash_fn)(void *self); +typedef __ev_uint64_t(*ev_hash_fn)(void *self, __ev_uint64_t seed); typedef struct { EV_DEBUG(const char *name;) @@ -34,9 +35,9 @@ typedef struct { #define DEFINE_DEFAULT_FREE_FUNCTION(T) \ DEFINE_FREE_FUNCTION(T,DEFAULT) { (void)self; } -#define DEFINE_HASH_FUNCTION(T,name) void HASH_FUNCTION(T,name)(T *self) +#define DEFINE_HASH_FUNCTION(T,name) void HASH_FUNCTION(T,name)(T *self, u64 seed) #define DEFINE_DEFAULT_HASH_FUNCTION(T) \ - DEFINE_HASH_FUNCTION(T,DEFAULT) { (void)self; EV_UNIMPLEMENTED(); } // TODO: Add a default hash function + DEFINE_HASH_FUNCTION(T,DEFAULT) { ev_hash_murmur3(self, sizeof(T), seed); } #define DECLARE_COPY_FUNCTION(T,name) DEFINE_COPY_FUNCTION(T,name); #define DECLARE_FREE_FUNCTION(T,name) DEFINE_FREE_FUNCTION(T,name);