diff options
Diffstat (limited to 'src/u_hash.h')
| -rw-r--r-- | src/u_hash.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/u_hash.h b/src/u_hash.h new file mode 100644 index 0000000..2b54ae6 --- /dev/null +++ b/src/u_hash.h @@ -0,0 +1,23 @@ +#pragma once + +#include <stddef.h> + +static inline size_t +hashs(size_t h, const char *s) +{ + while (*s) h = (unsigned char)*s++ + h*65599; + return h; +} + +static inline size_t +hashb(size_t h, const void *d, size_t n) +{ + const unsigned char *b = d; + while (n--) h = *b++ + h*65599; + return h; +} + +static inline size_t +ptrhash(const void *p) { + return (size_t)p * 2654435761u; +} |