File indexing completed on 2024-04-28 16:51:48

0001 /*
0002     SPDX-FileCopyrightText: 2022 Weng Xuetian <wegnxt@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #pragma once
0007 
0008 #include <QByteArray>
0009 #include <QDataStream>
0010 #include <QJsonDocument>
0011 #include <QList>
0012 
0013 struct Emoji {
0014     QString content;
0015     QString description;
0016     qint32 category;
0017     QStringList annotations;
0018 
0019     QString categoryName() const;
0020 };
0021 
0022 inline QDataStream &operator>>(QDataStream &stream, Emoji &emoji)
0023 {
0024     QByteArray buffer;
0025     stream >> buffer;
0026     emoji.content = QString::fromUtf8(buffer);
0027     stream >> buffer;
0028     emoji.description = QString::fromUtf8(buffer);
0029     stream >> emoji.category;
0030     QList<QByteArray> annotationBuffers;
0031     stream >> annotationBuffers;
0032     for (const auto &annotation : annotationBuffers) {
0033         emoji.annotations << QString::fromUtf8(annotation);
0034     }
0035     return stream;
0036 }
0037 
0038 struct EmojiDict {
0039     void load(const QString &path);
0040 
0041     QList<Emoji> m_emojis;
0042     QMap<QString, int> m_processedEmojis;
0043 };