diff options
author | Zach Hilman <DarkLordZach@users.noreply.github.com> | 2019-06-15 22:47:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-15 22:47:13 +0200 |
commit | c140b6ae2ca6bc318f47b74a6946ddb10d282dbe (patch) | |
tree | 6407b0465b93a7cfc0a5733e0d8dd3bb26742a15 /src/common/hex_util.h | |
parent | Merge pull request #2582 from lioncash/reserved (diff) | |
parent | common/hex_util: Reserve std::string memory ahead of time (diff) | |
download | yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.tar yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.tar.gz yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.tar.bz2 yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.tar.lz yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.tar.xz yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.tar.zst yuzu-c140b6ae2ca6bc318f47b74a6946ddb10d282dbe.zip |
Diffstat (limited to 'src/common/hex_util.h')
-rw-r--r-- | src/common/hex_util.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/common/hex_util.h b/src/common/hex_util.h index 68f003cb6..bb4736f96 100644 --- a/src/common/hex_util.h +++ b/src/common/hex_util.h @@ -7,6 +7,7 @@ #include <array> #include <cstddef> #include <string> +#include <type_traits> #include <vector> #include <fmt/format.h> #include "common/common_types.h" @@ -30,13 +31,20 @@ std::array<u8, Size> HexStringToArray(std::string_view str) { return out; } -std::string HexVectorToString(const std::vector<u8>& vector, bool upper = true); +template <typename ContiguousContainer> +std::string HexToString(const ContiguousContainer& data, bool upper = true) { + static_assert(std::is_same_v<typename ContiguousContainer::value_type, u8>, + "Underlying type within the contiguous container must be u8."); + + constexpr std::size_t pad_width = 2; -template <std::size_t Size> -std::string HexArrayToString(std::array<u8, Size> array, bool upper = true) { std::string out; - for (u8 c : array) + out.reserve(std::size(data) * pad_width); + + for (const u8 c : data) { out += fmt::format(upper ? "{:02X}" : "{:02x}", c); + } + return out; } |