X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/191737e1350a125739697af304730a0028ca01d5..4769a870917b98723690aa336d12d0656769528b:/lunaix-os/includes/lunaix/ds/hstr.h?ds=sidebyside diff --git a/lunaix-os/includes/lunaix/ds/hstr.h b/lunaix-os/includes/lunaix/ds/hstr.h new file mode 100644 index 0000000..4864052 --- /dev/null +++ b/lunaix-os/includes/lunaix/ds/hstr.h @@ -0,0 +1,25 @@ +#ifndef __LUNAIX_HSTR_H +#define __LUNAIX_HSTR_H + +#include + +struct hstr +{ + unsigned int hash; + unsigned int len; + char* value; +}; + +#define HSTR(str, length) \ + (struct hstr) \ + { \ + .len = length, .value = str \ + } + +inline void +hstr_rehash(struct hstr* hash_str, unsigned int truncate_to) +{ + hash_str->hash = strhash_32(hash_str->value, truncate_to); +} + +#endif /* __LUNAIX_HSTR_H */