5#define SER20_ASSOCIATIVE_ARCHIVE_XML 0
6#define SER20_ASSOCIATIVE_ARCHIVE_SIMDJSON 1
7#define SER20_ASSOCIATIVE_ARCHIVE_RAPIDJSON 2
8#define SER20_ASSOCIATIVE_ARCHIVE_YAML 3
10#define SER20_ASSOCIATIVE_ARCHIVE SER20_ASSOCIATIVE_ARCHIVE_SIMDJSON
19 auto cbegin =
reinterpret_cast<char*
>(
const_cast<uint8_t*
>(buf));
20 this->setg(cbegin, cbegin, cbegin +
size);
25 auto cbegin =
const_cast<char*
>(buf);
26 this->setg(cbegin, cbegin, cbegin +
size);
31#if SER20_ASSOCIATIVE_ARCHIVE == SER20_ASSOCIATIVE_ARCHIVE_XML
33#include <ser20/archives/xml.hpp>
51 membuf mbuf(buf, len);
52 std::istream stream(&mbuf);
58 membuf mbuf(buf, len);
59 std::istream stream(&mbuf);
64#elif SER20_ASSOCIATIVE_ARCHIVE == SER20_ASSOCIATIVE_ARCHIVE_SIMDJSON
65#include <ser20/archives/simdjson.hpp>
93#elif SER20_ASSOCIATIVE_ARCHIVE == SER20_ASSOCIATIVE_ARCHIVE_RAPIDJSON
94#include <ser20/archives/json.hpp>
102 using json_writer_t = SER20_RAPIDJSON_NAMESPACE::PrettyWriter<SER20_RAPIDJSON_NAMESPACE::OStreamWrapper>;
103 oarchive_associative_t::Options opts(json_writer_t::kDefaultMaxDecimalPlaces, oarchive_associative_t::Options::IndentChar::space, 2);
114 membuf mbuf(buf, len);
115 std::istream stream(&mbuf);
121 membuf mbuf(buf, len);
122 std::istream stream(&mbuf);
127#elif SER20_ASSOCIATIVE_ARCHIVE == SER20_ASSOCIATIVE_ARCHIVE_YAML
146 membuf mbuf(buf, len);
147 std::istream stream(&mbuf);
153 membuf mbuf(buf, len);
154 std::istream stream(&mbuf);
membuf(const uint8_t *buf, size_t size)
membuf(const char *buf, size_t size)
auto create_oarchive_associative(std::ostream &stream)
auto create_iarchive_associative(std::istream &stream)
simd::JSONOutputArchive oarchive_associative_t
simd::JSONInputArchive iarchive_associative_t
YAML input and output archives.