blob: 635e71aac687d47a214e1d5eb11f939cabe1e096 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <utils/string.hpp>
#include <utils/encoding.hpp>
bool to_bool(const std::string& val)
{
return (val == "1" || val == "true");
}
std::vector<std::string> cut(const std::string& val, const std::size_t size)
{
std::vector<std::string> res;
std::string::size_type pos = 0;
while (pos < val.size())
{
// Get the number of chars, <= size, that contain only whole
// UTF-8 codepoints.
std::size_t s = 0;
auto codepoint_size = utils::get_next_codepoint_size(val[pos + s]);
while (s + codepoint_size <= size && pos + s < val.size())
{
s += codepoint_size;
codepoint_size = utils::get_next_codepoint_size(val[pos + s]);
}
res.emplace_back(val.substr(pos, s));
pos += s;
}
return res;
}
|