Partially revert "Remove unused stringutils methods"

This partially reverts commit 0c1a5a5c97.
This commit is contained in:
Lars Toenning
2022-06-05 22:47:41 +02:00
parent 684b2b1068
commit 1a1b5429d5
5 changed files with 35 additions and 2 deletions

View File

@@ -12,6 +12,7 @@
#define BLACKMISC_STRINGUTILS_H
#include "blackmisc/blackmiscexport.h"
#include "blackmisc/range.h"
#include "blackmisc/typetraits.h"
#include <QByteArray>
@@ -116,6 +117,15 @@ namespace BlackMisc
//! It would be risky to call splitLinesRefs with an rvalue, so forbid it.
void splitLinesRefs(const QString &&) = delete;
//! Split a string into multiple strings, using a predicate function to identify the split points.
template <class F> QStringList splitString(const QString &s, F predicate)
{
return makeRange(splitStringRefs(s, predicate)).transform([](QStringRef sr) { return sr.toString(); });
}
//! Split a string into multiple lines. Blank lines are skipped.
BLACKMISC_EXPORT QStringList splitLines(const QString &s);
//! Extended percent encoding supporting UTF-16
BLACKMISC_EXPORT QByteArray utfToPercentEncoding(const QString &s, const QByteArray &allow = {}, char percent = '%');