File indexing completed on 2024-11-24 03:56:28
0001 /* 0002 * SPDX-FileCopyrightText: 2019-2023 Mattia Basaglia <dev@dragon.best> 0003 * 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QtGlobal> 0010 #include <QString> 0011 0012 #if QT_VERSION > QT_VERSION_CHECK(5, 15, 2) 0013 0014 #include <QStringView> 0015 0016 namespace utils { 0017 0018 inline QStringView left_ref(const QString& s, int n) 0019 { 0020 return QStringView{s}.left(n); 0021 } 0022 0023 inline QStringView right_ref(const QString& s, int n) 0024 { 0025 return QStringView{s}.right(n); 0026 } 0027 0028 inline QStringView mid_ref(const QString& s, int a, int b) 0029 { 0030 return QStringView{s}.mid(a, b); 0031 } 0032 0033 template<class... Args> 0034 inline auto split_ref(const QString& s, Args&&... args) 0035 { 0036 return QStringView{s}.split(std::forward<Args>(args)...); 0037 } 0038 0039 using StringView = QStringView; 0040 0041 } // namespace utils 0042 0043 #else 0044 0045 #include <QStringRef> 0046 0047 0048 namespace utils { 0049 0050 inline QStringRef left_ref(const QString& s, int n) 0051 { 0052 return s.leftRef(n); 0053 } 0054 0055 inline QStringRef right_ref(const QString& s, int n) 0056 { 0057 return s.rightRef(n); 0058 } 0059 0060 inline QStringRef mid_ref(const QString& s, int a, int b) 0061 { 0062 return s.midRef(a, b); 0063 } 0064 0065 template<class... Args> 0066 inline auto split_ref(const QString& s, Args&&... args) 0067 { 0068 return s.splitRef(std::forward<Args>(args)...); 0069 } 0070 0071 using StringView = QStringRef; 0072 0073 } // namespace utils 0074 0075 0076 #endif