diff options
| author | Stefan Boberg <[email protected]> | 2021-05-11 13:05:39 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-05-11 13:05:39 +0200 |
| commit | f8d9ac5d13dd37b8b57af0478e77ba1e75c813aa (patch) | |
| tree | 1daf7621e110d48acd5e12e3073ce48ef0dd11b2 /zencore/xxhash.cpp | |
| download | zen-f8d9ac5d13dd37b8b57af0478e77ba1e75c813aa.tar.xz zen-f8d9ac5d13dd37b8b57af0478e77ba1e75c813aa.zip | |
Adding zenservice code
Diffstat (limited to 'zencore/xxhash.cpp')
| -rw-r--r-- | zencore/xxhash.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/zencore/xxhash.cpp b/zencore/xxhash.cpp new file mode 100644 index 000000000..a20ee10bd --- /dev/null +++ b/zencore/xxhash.cpp @@ -0,0 +1,50 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include <zencore/xxhash.h> + +#include <zencore/string.h> + +#include <doctest/doctest.h> +#include <gsl/gsl-lite.hpp> + +namespace zen { + +XXH3_128 XXH3_128::Zero; // Initialized to all zeros + +XXH3_128 +XXH3_128::FromHexString(const char* InString) +{ + return FromHexString({InString, sizeof(XXH3_128::Hash) * 2}); +} + +XXH3_128 +XXH3_128::FromHexString(std::string_view InString) +{ + ZEN_ASSERT(InString.size() == 2 * sizeof(XXH3_128::Hash)); + + XXH3_128 Xx; + ParseHexBytes(InString.data(), InString.size(), Xx.Hash); + return Xx; +} + +const char* +XXH3_128::ToHexString(char* OutString /* 40 characters + NUL terminator */) const +{ + ToHexBytes(Hash, sizeof(XXH3_128), OutString); + OutString[2 * sizeof(XXH3_128)] = '\0'; + + return OutString; +} + +StringBuilderBase& +XXH3_128::ToHexString(StringBuilderBase& OutBuilder) const +{ + String_t str; + ToHexString(str); + + OutBuilder.AppendRange(str, &str[StringLength]); + + return OutBuilder; +} + +} // namespace zen |