12 #include <boost/archive/iterators/binary_from_base64.hpp> 13 #include <boost/archive/iterators/base64_from_binary.hpp> 14 #include <boost/archive/iterators/transform_width.hpp> 18 namespace StructuredHeaders {
21 return c >= 0x61 && c <= 0x7A;
25 return isLcAlpha(c) || std::isdigit(c) || c ==
'_' || c ==
'-' || c ==
'*' ||
31 return std::isalpha(c) || std::isdigit(c) || c ==
'+' || c ==
'/' || c ==
'=';
42 return c >= 0x20 && c <= 0x7E;
71 if (s.size() % 4 != 0) {
75 bool equalSeen =
false;
76 for (
auto it = s.begin(); it != s.end(); it++) {
97 return input.
value.type() ==
typeid(double);
108 if (encoded.size() == 0) {
113 using namespace boost::archive::iterators;
115 transform_width<binary_from_base64<std::string::const_iterator>, 8, 6>;
121 decoded.erase(decoded.end() - numPadding, decoded.end());
127 using namespace boost::archive::iterators;
128 using b64it = base64_from_binary<transform_width<const char*, 6, 8>>;
130 auto data = input.data();
132 encoded.append((3 - (input.length() % 3)) % 3,
'=');
auto begin(TestAdlIterable &instance)
auto end(TestAdlIterable &instance)
static constexpr uint64_t data[1]