#pragma once #include "string.h" #include "typedef.h" typedef U32 FNV1A; enum : FNV1A { FNV1A_PRIME = 0x1000193, FNV1A_BASIS = 0x811C9DC5 }; inline constexpr FNV1A fnv1a( const U8* data, const U32 size ) { FNV1A out = FNV1A_BASIS; for( U32 i = 0; i < size; ++i ) out = ( out ^ data[i] ) * FNV1A_PRIME; return out; } inline constexpr FNV1A fnv1a( const char* str ) { U32 len = strlen_ct( str ); return fnv1a( (const U8*)str, len ); }