From a4f8cf709e1619daab4f7f91f79465dcbe384523 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Wed, 6 Sep 2023 16:50:45 +0200 Subject: [PATCH] Utils: Add more conversion operators to SmallString An explicit operator for QLatin1StringView. That is dangerous if the string is not ASCII and one for QUtf8StringView. Change-Id: I2d0a0ca3854b47595563a19263aacd7f8825d026 Reviewed-by: Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Tim Jenssen --- src/libs/utils/smallstring.h | 9 +++++++++ src/libs/utils/smallstringview.h | 11 +++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/libs/utils/smallstring.h b/src/libs/utils/smallstring.h index c64e46f6f87..2ef565bde2e 100644 --- a/src/libs/utils/smallstring.h +++ b/src/libs/utils/smallstring.h @@ -203,6 +203,15 @@ public: SmallStringView toStringView() const noexcept { return SmallStringView(data(), size()); } operator SmallStringView() const noexcept { return SmallStringView(data(), size()); } + explicit operator QLatin1StringView() const noexcept + { + return QLatin1StringView(data(), Utils::ssize(*this)); + } + + operator QUtf8StringView() const noexcept + { + return QUtf8StringView(data(), Utils::ssize(*this)); + } explicit operator QString() const noexcept { return toQString(); } diff --git a/src/libs/utils/smallstringview.h b/src/libs/utils/smallstringview.h index 982192c7a44..28f8b781501 100644 --- a/src/libs/utils/smallstringview.h +++ b/src/libs/utils/smallstringview.h @@ -3,6 +3,7 @@ #pragma once +#include "algorithm.h" #include "smallstringfwd.h" #include "smallstringiterator.h" @@ -76,11 +77,17 @@ public: return QString::fromUtf8(data(), int(size())); } - explicit operator QByteArray() const + explicit operator QByteArray() const { return QByteArray(data(), int(size())); } + + explicit operator QLatin1StringView() const noexcept { - return QByteArray(data(), int(size())); + return QLatin1StringView(data(), Utils::ssize(*this)); } + operator QUtf8StringView() const noexcept + { + return QUtf8StringView(data(), Utils::ssize(*this)); + } constexpr bool startsWith(SmallStringView subStringToSearch) const noexcept { if (size() >= subStringToSearch.size())