MCPcopy Create free account
hub / github.com/ChiyukiGana/Quickinput / de

Method de

source/src/tools/code.h:14–30  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12 {
13 public:
14 static std::vector<unsigned char> de(const std::string& hex_str)
15 {
16 std::vector<unsigned char> result;
17 if (hex_str.empty()) return {};
18 if (hex_str.length() % 2 != 0) return {};
19 result.reserve(hex_str.length() / 2);
20 for (size_t i = 0; i < hex_str.length(); i += 2)
21 {
22 char c1 = static_cast<char>(std::tolower(static_cast<unsigned char>(hex_str[i])));
23 char c2 = static_cast<char>(std::tolower(static_cast<unsigned char>(hex_str[i + 1])));
24 if (!std::isxdigit(static_cast<unsigned char>(c1)) || !std::isxdigit(static_cast<unsigned char>(c2))) return {};
25 int high = (c1 >= 'a') ? (c1 - 'a' + 10) : (c1 - '0');
26 int low = (c2 >= 'a') ? (c2 - 'a' + 10) : (c2 - '0');
27 result.push_back(static_cast<unsigned char>((high << 4) | low));
28 }
29 return result;
30 }
31 static std::string en(const unsigned char* data, const size_t size)
32 {
33 if (!data || size <= 0) return {};

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected