24 static std::pair<std::vector<uint8_t>, std::string>
to_array(
const std::string& str) {
26 std::vector<uint8_t> result(str.begin(), str.end());
28 }
catch (
const std::exception& e) {
29 return {{}, e.what()};
36 static std::pair<std::string, std::string>
to_string(
const std::vector<uint8_t>& arr) {
38 std::string result(arr.begin(), arr.end());
40 }
catch (
const std::exception& e) {
41 return {
"", e.what()};
48 static std::pair<std::string, std::string>
to_base64(
const std::vector<uint8_t>& data) {
50 const std::string chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
55 for (uint8_t c : data) {
59 result.push_back(chars[(val >> valb) & 0x3F]);
65 result.push_back(chars[((val << 8) >> (valb + 8)) & 0x3F]);
68 while (result.size() % 4) {
69 result.push_back(
'=');
73 }
catch (
const std::exception& e) {
74 return {
"", e.what()};
81 static std::pair<std::vector<uint8_t>, std::string>
from_base64(
const std::string& str) {
83 const std::string chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
84 std::vector<uint8_t> result;
90 size_t pos = chars.find(c);
91 if (pos == std::string::npos)
continue;
93 val = (val << 6) + pos;
96 result.push_back((val >> valb) & 0xFF);
102 }
catch (
const std::exception& e) {
103 return {{}, e.what()};
110 static void replace(std::string& str,
const std::string& from,
const std::string& to) {
111 if (from.empty())
return;
113 size_t start_pos = 0;
114 while ((start_pos = str.find(from, start_pos)) != std::string::npos) {
115 str.replace(start_pos, from.length(), to);
116 start_pos += to.length();
123 static std::pair<std::string, std::string>
to_string(
const std::string& str) {
String conversion utilities.
static void replace(std::string &str, const std::string &from, const std::string &to)
Replace all occurrences of a substring.
static std::pair< std::string, std::string > to_base64(const std::vector< uint8_t > &data)
Convert data to base64.
static std::pair< std::string, std::string > to_string(const std::string &str)
Convert string to string (identity function for compatibility)
static std::pair< std::vector< uint8_t >, std::string > from_base64(const std::string &str)
Convert from base64.
static std::pair< std::vector< uint8_t >, std::string > to_array(const std::string &str)
Convert string to byte array.
static std::pair< std::string, std::string > to_string(const std::vector< uint8_t > &arr)
Convert byte array to string.