diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/containertypeentry.h')
-rw-r--r-- | sources/shiboken6/ApiExtractor/containertypeentry.h | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/sources/shiboken6/ApiExtractor/containertypeentry.h b/sources/shiboken6/ApiExtractor/containertypeentry.h index 34ee08808..b2003816b 100644 --- a/sources/shiboken6/ApiExtractor/containertypeentry.h +++ b/sources/shiboken6/ApiExtractor/containertypeentry.h @@ -5,18 +5,23 @@ #define CONTAINERTYPEENTRY_H #include "complextypeentry.h" +#include "customconversion_typedefs.h" class ContainerTypeEntryPrivate; +struct OpaqueContainer // Generate an opaque container for an instantiation under name +{ + QStringList instantiations; + QString name; + + QString templateParameters() const; +}; + +using OpaqueContainers = QList<OpaqueContainer>; + class ContainerTypeEntry : public ComplexTypeEntry { public: - struct OpaqueContainer // Generate an opaque container for an instantiation under name - { - QString instantiation; - QString name; - }; - using OpaqueContainers = QList<OpaqueContainer>; enum ContainerKind { ListContainer, @@ -24,17 +29,25 @@ public: MapContainer, MultiMapContainer, PairContainer, + SpanContainer, // Fixed size }; explicit ContainerTypeEntry(const QString &entryName, ContainerKind containerKind, - const QVersionNumber &vr, const TypeEntry *parent); + const QVersionNumber &vr, const TypeEntryCPtr &parent); ContainerKind containerKind() const; + /// Number of template parameters (except allocators) + qsizetype templateParameterCount() const; + const OpaqueContainers &opaqueContainers() const; - void addOpaqueContainer(OpaqueContainer r); - bool generateOpaqueContainer(const QString &instantiation) const; - QString opaqueContainerName(const QString &instantiation) const; + void appendOpaqueContainers(const OpaqueContainers &l); + bool generateOpaqueContainer(const QStringList &instantiations) const; + QString opaqueContainerName(const QStringList &instantiations) const; + + bool hasCustomConversion() const; + void setCustomConversion(const CustomConversionPtr &customConversion); + CustomConversionPtr customConversion() const; TypeEntry *clone() const override; @@ -45,4 +58,6 @@ protected: explicit ContainerTypeEntry(ContainerTypeEntryPrivate *d); }; +QDebug operator<<(QDebug d, const OpaqueContainer &oc); + #endif // CONTAINERTYPEENTRY_H |