| 26 | namespace arrow { |
| 27 | |
| 28 | std::string HexEncode(const uint8_t* data, size_t length) { |
| 29 | std::string hex_string(length * 2, '\0'); |
| 30 | for (size_t j = 0, i = 0; j < length; ++j) { |
| 31 | // Convert to 2 base16 digits |
| 32 | constexpr auto kHexDigitTable = "0123456789ABCDEF"; |
| 33 | hex_string[i++] = kHexDigitTable[data[j] >> 4]; |
| 34 | hex_string[i++] = kHexDigitTable[data[j] & 0b1111]; |
| 35 | } |
| 36 | return hex_string; |
| 37 | } |
| 38 | |
| 39 | std::string Escape(const char* data, size_t length) { |
| 40 | std::string escaped_string; |