5#ifndef METATYPESJSONPROCESSOR_P_H
6#define METATYPESJSONPROCESSOR_P_H
19#include <private/qduplicatetracker_p.h>
21#include <QtCore/qcbormap.h>
22#include <QtCore/qstring.h>
23#include <QtCore/qtyperevision.h>
24#include <QtCore/qvarlengtharray.h>
25#include <QtCore/qvector.h>
34enum class Access { Public, Protected, Private };
116 Method(
const QCborMap &cbor,
bool isConstructor);
141 Enum(
const QCborMap &cbor);
190 MetaType(
const QCborMap &cbor,
const QString &inputFile);
192 bool isEmpty()
const {
return d == &s_empty; }
232 bool isValid()
const {
return !alias.isEmpty() && !original.isEmpty(); }
236 return std::tie(a.alias, a.original) == std::tie(b.alias, b.original);
242 return a.alias != b.alias
243 ? compareThreeWay(a.alias, b.alias)
244 : compareThreeWay(a.original, b.original);
274 enum RegistrationMode {
278 NamespaceRegistration
281 struct PreProcessResult {
282 QList<QAnyStringView> primitiveAliases;
284 QAnyStringView foreignPrimitive;
285 RegistrationMode mode;
288 enum class PopulateMode { No, Yes };
289 static PreProcessResult preProcess(
const MetaType &classDef, PopulateMode populateMode);
290 void addRelatedTypes();
292 void sortTypes(QList<MetaType> &types);
293 QString resolvedInclude(QAnyStringView include);
297 bool isPrimitive(QAnyStringView type)
const
299 return std::binary_search(m_primitiveTypes.begin(), m_primitiveTypes.end(), type);
302 QList<QString> m_includes;
303 QList<QAnyStringView> m_referencedTypes;
304 QList<QAnyStringView> m_primitiveTypes;
305 QList<UsingDeclaration> m_usingDeclarations;
306 QList<MetaType> m_types;
307 QList<MetaType> m_foreignTypes;
308 QList<MetaType> m_opaqueTypes;
309 QDuplicateTracker<QString> m_seenMetaTypesFiles;
310 bool m_privateIncludes =
false;
Combined button and popup list for selecting options.
QDebug warning(const MetaType &classDef)
Argument(const QCborMap &cbor)
BaseType(const QCborMap &cbor)
ClassInfo(const QCborMap &cbor)
QList< QAnyStringView > values
Enum(const QCborMap &cbor)
Interface(const QCborValue &cbor)
QAnyStringView returnType
Argument::Container arguments
bool isJavaScriptFunction
Method(const QCborMap &cbor, bool isConstructor)
static constexpr int InvalidIndex
QAnyStringView privateClass
Property(const QCborMap &cbor)
friend bool comparesEqual(const UsingDeclaration &a, const UsingDeclaration &b) noexcept
friend Qt::strong_ordering compareThreeWay(const UsingDeclaration &a, const UsingDeclaration &b) noexcept