Add SimpleHash() function

This commit is contained in:
Kevin Trogant 2026-03-17 09:13:23 +01:00
parent 270e219d2e
commit 8bef920c1f

View File

@ -214,6 +214,9 @@ enum
RTC_API void *ArenaAlloc(arena *a, isize size, isize align, isize n, int flags); RTC_API void *ArenaAlloc(arena *a, isize size, isize align, isize n, int flags);
/* Compute a simple, non-cryptographic hash */
RTC_API u64 SimpleHash(byte *data, isize len);
/* String type */ /* String type */
typedef struct s8 typedef struct s8
{ {
@ -485,6 +488,16 @@ ArenaAlloc(arena *a, isize size, isize align, isize n, int flags)
return (flags & ALLOC_NOZERO) ? p : memset(p, 0, n * size); return (flags & ALLOC_NOZERO) ? p : memset(p, 0, n * size);
} }
/* Basic hash */
RTC_API u64
SimpleHash(byte *data, isize len)
{
u64 hash = 0xcbf29ce484222325;
for (isize i = 0; i < len; ++i)
hash = (hash ^ (u8)data[i]) * 0x00000100000001b3;
return hash;
}
/* S8 funcs */ /* S8 funcs */
RTC_API s8 RTC_API s8
S8Span(u8 *begin, u8 *end) S8Span(u8 *begin, u8 *end)