27class Serializer<QString> {
30 Serializer(
const QString& p_value):value(p_value.toUtf8()) {};
34#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
35 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<qsizetype>::max()))
36 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
38 return QString::fromUtf8(QByteArray(
static_cast<const char *
>(data.mv_data),
static_cast<qsizetype
>(data.mv_size)));
40 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<int>::max()))
41 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
43 return QString::fromUtf8(QByteArray(
static_cast<const char *
>(data.mv_data),
static_cast<int>(data.mv_size)));
46 void deserialize(
const MDB_val& data, QString& result) {
47#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
48 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<qsizetype>::max()))
49 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
51 result = QString::fromUtf8(QByteArray(
static_cast<const char *
>(data.mv_data),
static_cast<qsizetype
>(data.mv_size)));
53 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<int>::max()))
54 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
56 result = QString::fromUtf8(QByteArray(
static_cast<const char *
>(data.mv_data),
static_cast<int>(data.mv_size)));
59 MDB_val
setData(
const QString& data) {
60 value = data.toUtf8();
65 result.mv_data = value.data();
66 result.mv_size =
static_cast<size_t>(value.size());