diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/codesnip.cpp')
| -rw-r--r-- | sources/shiboken6/ApiExtractor/codesnip.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/codesnip.cpp b/sources/shiboken6/ApiExtractor/codesnip.cpp index 255b9a392..40847a016 100644 --- a/sources/shiboken6/ApiExtractor/codesnip.cpp +++ b/sources/shiboken6/ApiExtractor/codesnip.cpp @@ -33,6 +33,11 @@ QString TemplateInstance::expandCode() const return result; } +bool comparesEqual(const TemplateInstance &lhs, const TemplateInstance &rhs) noexcept +{ + return lhs.m_name == rhs.m_name && lhs.replaceRules == rhs.replaceRules; +} + // ---------------------- CodeSnipFragment static QString fragmentToCodeHelper(const QString &c) @@ -65,6 +70,21 @@ static bool isEmptyFragment(const CodeSnipFragment &codeFrag) return std::visit([](auto f) { return isEmptyFragmentHelper(f); }, codeFrag); } +static size_t hashHelper(const QString &c, size_t seed) noexcept +{ + return qHash(c, seed); +} + +static size_t hashHelper(const TemplateInstance &t, size_t seed) noexcept +{ + return qHash(t, seed); +} + +size_t qHash(const CodeSnipFragment &codeFrag, size_t seed) noexcept +{ + return std::visit([seed](auto f) { return hashHelper(f, seed); }, codeFrag); +} + static void formatDebugHelper(QDebug &d, const QString &code) { const auto lines = QStringView{code}.split(u'\n'); @@ -115,6 +135,12 @@ QRegularExpression CodeSnipAbstract::placeHolderRegex(int index) return QRegularExpression(u'%' + QString::number(index) + "\\b"_L1); } +bool comparesEqual(const CodeSnip &lhs, const CodeSnip &rhs) noexcept +{ + return lhs.language == rhs.language && lhs.position == rhs.position + && lhs.codeList() == rhs.codeList(); +} + void purgeEmptyCodeSnips(QList<CodeSnip> *list) { for (auto it = list->begin(); it != list->end(); ) { |
