49 return std::all_of(it, _s.end(), [](
char c) { return fromHexChar(c) != -1; });
55 unsigned s = (_s.size() >= 2 && _s[0] ==
'0' && _s[1] ==
'x') ? 2 : 0;
56 std::vector<uint8_t> ret;
57 ret.reserve((_s.size() - s + 1) / 2);
60 int h = fromHexChar(_s[s++]);
63 else if (_throw == WhenError::Throw)
64 throw std::runtime_error(
"BadHexCharacter");
68 for (
unsigned i = s; i < _s.size(); i += 2) {
69 int h = fromHexChar(_s[i]);
70 int l = fromHexChar(_s[i + 1]);
71 if (h != -1 && l != -1)
72 ret.push_back((uint8_t)(h * 16 + l));
73 else if (_throw == WhenError::Throw)
74 throw std::runtime_error(
"BadHexCharacter");