aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/containertypeentry.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/containertypeentry.h')
-rw-r--r--sources/shiboken6/ApiExtractor/containertypeentry.h35
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