mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-10-14 12:59:41 -07:00
rename RAD_TypeHashAlg; extend /RAD_DEBUG_TYPE_HASH with XXHASH option
This commit is contained in:
1 parent
97a1fe6006
commit
fcee35f3e9
8 files changed
+183
-56
No files matched your search
@@ -0,0 +1,60 @@
|
||||
// Copyright (c) Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
internal void
|
||||
lnk_hasher_init(LNK_Hasher *hasher, LNK_HashKind kind)
|
||||
{
|
||||
hasher->kind = kind;
|
||||
switch (kind) {
|
||||
case LNK_HashKind_BLAKE3: blake3_hasher_init(&hasher->u.blake3); break;
|
||||
case LNK_HashKind_XXHash: XXH3_64bits_reset(&hasher->u.xxhash); break;
|
||||
default: InvalidPath; break;
|
||||
}
|
||||
}
|
||||
|
||||
internal void
|
||||
lnk_hasher_update(LNK_Hasher *hasher, void *data, U64 size)
|
||||
{
|
||||
switch (hasher->kind) {
|
||||
case LNK_HashKind_BLAKE3: blake3_hasher_update(&hasher->u.blake3, data, size); break;
|
||||
case LNK_HashKind_XXHash: XXH3_64bits_update(&hasher->u.xxhash, data, size); break;
|
||||
default: InvalidPath; break;
|
||||
}
|
||||
}
|
||||
|
||||
internal U64
|
||||
lnk_hasher_digest(LNK_Hasher *hasher)
|
||||
{
|
||||
U64 hash = 0;
|
||||
switch (hasher->kind) {
|
||||
case LNK_HashKind_BLAKE3: blake3_hasher_finalize(&hasher->u.blake3, (U8 *)&hash, sizeof(hash)); break;
|
||||
case LNK_HashKind_XXHash: hash = XXH3_64bits_digest(&hasher->u.xxhash); break;
|
||||
default: InvalidPath; break;
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
internal String8
|
||||
lnk_string_hash_kind(LNK_HashKind hash_kind)
|
||||
{
|
||||
#define X(NAME) case LNK_HashKind_##NAME: return str8_lit(Stringify(NAME));
|
||||
switch (hash_kind) {
|
||||
LNK_HashKind_XList
|
||||
}
|
||||
#undef X
|
||||
return str8_zero();
|
||||
}
|
||||
|
||||
internal LNK_HashKind
|
||||
lnk_hash_kind_from_llvm(LLVM_GHashAlgEnum v)
|
||||
{
|
||||
switch (v) {
|
||||
case LLVM_GHashAlg_SHA1:
|
||||
case LLVM_GHashAlg_SHA1_8:
|
||||
return LNK_HashKind_Null;
|
||||
case LLVM_GHashAlg_BLAKE3:
|
||||
return LNK_HashKind_BLAKE3;
|
||||
}
|
||||
return LNK_HashKind_Null;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user