summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMÃ¥rten Nordheim <marten.nordheim@qt.io>2021-11-22 15:39:32 +0100
committerMarc Mutz <marc.mutz@qt.io>2021-12-04 08:21:22 +0000
commitcdc3de6c84383c77b93c6ae834f17a75f9092330 (patch)
treed733c0ee6839db8579fb5f9bd283b145d6ecb0ff /src
parent9909ec0bc63325fc115d9d84ab01c08333fd8c53 (diff)
QStringBuilder: Add support for QByteArrayView
[ChangeLog][QtCore][QStringBuilder] Added support for QByteArrayView. Change-Id: If2c23549d533dd31c320f3ee455fcd01ea5b460a Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/text/qstringbuilder.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/corelib/text/qstringbuilder.h b/src/corelib/text/qstringbuilder.h
index 8494459d63..f3cbba26dd 100644
--- a/src/corelib/text/qstringbuilder.h
+++ b/src/corelib/text/qstringbuilder.h
@@ -187,6 +187,27 @@ template <> struct QConcatenable<char> : private QAbstractConcatenable
{ *out++ = c; }
};
+template <> struct QConcatenable<QByteArrayView> : private QAbstractConcatenable
+{
+ typedef QByteArrayView type;
+ typedef QByteArray ConvertTo;
+ enum { ExactSize = true };
+ static qsizetype size(QByteArrayView bav) { return bav.size(); }
+#ifndef QT_NO_CAST_FROM_ASCII
+ QT_ASCII_CAST_WARN static inline void appendTo(QByteArrayView bav, QChar *&out)
+ {
+ QAbstractConcatenable::convertFromUtf8(bav, out);
+ }
+#endif
+ static inline void appendTo(QByteArrayView bav, char *&out)
+ {
+ qsizetype n = bav.size();
+ if (n)
+ memcpy(out, bav.data(), n);
+ out += n;
+ }
+};
+
template <> struct QConcatenable<char16_t> : private QAbstractConcatenable
{
typedef char16_t type;