Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
deck_tag_serialization.h
Go to the documentation of this file.
1#ifndef DECK_TAG_SERIALIZATION_H
2#define DECK_TAG_SERIALIZATION_H
3
4#include <QJsonArray>
5#include <QJsonDocument>
6#include <QJsonValue>
7#include <QString>
8#include <QStringList>
9
16inline QString serializeDeckTags(const QStringList &tags)
17{
18 QJsonArray array;
19 for (const QString &tag : tags) {
20 array.append(tag);
21 }
22 return QString::fromUtf8(QJsonDocument(array).toJson(QJsonDocument::Compact));
23}
24
26inline QStringList deserializeDeckTags(const QString &serialized)
27{
28 QStringList tags;
29 if (serialized.isEmpty()) {
30 return tags;
31 }
32 const QJsonArray array = QJsonDocument::fromJson(serialized.toUtf8()).array();
33 for (const QJsonValue &tag : array) {
34 tags.append(tag.toString());
35 }
36 return tags;
37}
38
39#endif // DECK_TAG_SERIALIZATION_H
QStringList deserializeDeckTags(const QString &serialized)
Decodes deck tags previously written by serializeDeckTags.
Definition deck_tag_serialization.h:26
QString serializeDeckTags(const QStringList &tags)
Encodes deck tags as a compact JSON array for storage in a text column.
Definition deck_tag_serialization.h:16