diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-11-10 10:49:58 +0100 |
---|---|---|
committer | MacroFake <falke.marco@gmail.com> | 2022-04-27 19:53:17 +0200 |
commit | fae1006019188700e0c497a63fc1550fe00ca8bb (patch) | |
tree | 0b0befbf77427a934bb6aeffe1113095e8cb6e59 /src/util/strencodings.cpp | |
parent | fabdf81983e2542d60542b80fb94ccb1acdd204a (diff) | |
download | bitcoin-fae1006019188700e0c497a63fc1550fe00ca8bb.tar.xz |
util: Add ParseHex<std::byte>() helper
Diffstat (limited to 'src/util/strencodings.cpp')
-rw-r--r-- | src/util/strencodings.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/util/strencodings.cpp b/src/util/strencodings.cpp index 3556c0f4b0..6f034c65a2 100644 --- a/src/util/strencodings.cpp +++ b/src/util/strencodings.cpp @@ -76,9 +76,10 @@ bool IsHexNumber(std::string_view str) return str.size() > 0; } -std::vector<unsigned char> ParseHex(std::string_view str) +template <typename Byte> +std::vector<Byte> ParseHex(std::string_view str) { - std::vector<unsigned char> vch; + std::vector<Byte> vch; auto it = str.begin(); while (it != str.end() && it + 1 != str.end()) { if (IsSpace(*it)) { @@ -88,10 +89,12 @@ std::vector<unsigned char> ParseHex(std::string_view str) auto c1 = HexDigit(*(it++)); auto c2 = HexDigit(*(it++)); if (c1 < 0 || c2 < 0) break; - vch.push_back(uint8_t(c1 << 4) | c2); + vch.push_back(Byte(c1 << 4) | Byte(c2)); } return vch; } +template std::vector<std::byte> ParseHex(std::string_view); +template std::vector<uint8_t> ParseHex(std::string_view); void SplitHostPort(std::string_view in, uint16_t& portOut, std::string& hostOut) { |