aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/anystringview_helpers.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/anystringview_helpers.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp b/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp
index f26b2b6a5..504902f42 100644
--- a/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp
+++ b/sources/shiboken6/ApiExtractor/anystringview_helpers.cpp
@@ -7,6 +7,8 @@
#include <QtCore/QDebug>
#include <QtCore/QTextStream>
+#include <cstring>
+
QTextStream &operator<<(QTextStream &str, QAnyStringView asv)
{
asv.visit([&str](auto s) { str << s; });
@@ -21,3 +23,42 @@ QDebug operator<<(QDebug debug, QAnyStringView asv)
asv.visit([&debug](auto s) { debug << s; });
return debug;
}
+
+static bool asv_containsImpl(QLatin1StringView v, char c)
+{
+ return v.contains(uint16_t(c));
+}
+
+static bool asv_containsImpl(QUtf8StringView v, char c)
+{
+ return std::strchr(v.data(), c) != nullptr;
+}
+
+static bool asv_containsImpl(QStringView v, char c)
+{
+ return v.contains(uint16_t(c));
+}
+
+bool asv_contains(QAnyStringView asv, char needle)
+{
+ return asv.visit([needle](auto s) { return asv_containsImpl(s, needle); });
+}
+
+static bool asv_containsImpl(QLatin1StringView v, const char *c)
+{
+ return v.contains(QLatin1StringView(c));
+}
+static bool asv_containsImpl(QUtf8StringView v, const char *c)
+{
+ return std::strstr(v.data(), c) != nullptr;
+}
+
+static bool asv_containsImpl(QStringView v, const char *c)
+{
+ return v.contains(QLatin1StringView(c));
+}
+
+bool asv_contains(QAnyStringView asv, const char *needle)
+{
+ return asv.visit([needle](auto s) { return asv_containsImpl(s, needle); });
+}