summaryrefslogtreecommitdiff
path: root/qstd
diff options
context:
space:
mode:
Diffstat (limited to 'qstd')
-rw-r--r--qstd/str.c9
-rw-r--r--qstd/str.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/qstd/str.c b/qstd/str.c
index a1c1aa1..b6b0eb7 100644
--- a/qstd/str.c
+++ b/qstd/str.c
@@ -9,3 +9,12 @@ uint64_t fnv1a64(uint8_t* buf, size_t size) {
}
return hash;
}
+
+uint32_t hash_string(const char* s) {
+ uint32_t h = 2166136261u;
+ for (; *s; s++) {
+ h ^= *(uint8_t*)s;
+ h *= 16777619;
+ }
+ return h;
+}
diff --git a/qstd/str.h b/qstd/str.h
index f55333e..da9bf36 100644
--- a/qstd/str.h
+++ b/qstd/str.h
@@ -5,5 +5,6 @@
#include <stdint.h>
uint64_t fnv1a64(uint8_t* buf, size_t size);
+uint32_t hash_string(const char* s);
#endif