| 80 | } |
| 81 | |
| 82 | Status ParseHexValue(const char* data, uint8_t* out) { |
| 83 | uint8_t high = ParseHexDigit(data[0]); |
| 84 | uint8_t low = ParseHexDigit(data[1]); |
| 85 | |
| 86 | // Error checking |
| 87 | if (high == kInvalidHexDigit || low == kInvalidHexDigit) { |
| 88 | return Status::Invalid("Encountered non-hex digit"); |
| 89 | } |
| 90 | |
| 91 | *out = static_cast<uint8_t>(high << 4 | low); |
| 92 | return Status::OK(); |
| 93 | } |
| 94 | |
| 95 | Status ParseHexValues(std::string_view hex_string, uint8_t* out) { |
| 96 | if (hex_string.size() % 2 != 0) { |