aboutsummaryrefslogtreecommitdiff
path: root/src/util/strencodings.cpp
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2021-11-10 10:49:58 +0100
committerMacroFake <falke.marco@gmail.com>2022-04-27 19:53:17 +0200
commitfae1006019188700e0c497a63fc1550fe00ca8bb (patch)
tree0b0befbf77427a934bb6aeffe1113095e8cb6e59 /src/util/strencodings.cpp
parentfabdf81983e2542d60542b80fb94ccb1acdd204a (diff)
downloadbitcoin-fae1006019188700e0c497a63fc1550fe00ca8bb.tar.xz
util: Add ParseHex<std::byte>() helper
Diffstat (limited to 'src/util/strencodings.cpp')
-rw-r--r--src/util/strencodings.cpp9
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)
{