kDB: Knowledge DataBase
Loading...
Searching...
No Matches
UriList.h
1#pragma once
2
3#include "Uris/Uris.h"
4#include <QStringList>
5
6namespace knowCore
7{
8 class UriList : public QList<Uri>
9 {
10 public:
11 inline UriList(std::initializer_list<QString> args) : UriList(QList<QString>(args)) {}
12 template<typename _T_>
13 requires(Uris::IsUriDefinitionV<_T_>)
14 inline UriList(std::initializer_list<_T_> args) Q_DECL_NOTHROW
15 {
16 std::copy(args.begin(), args.end(), std::front_inserter(*this));
17 }
18 inline UriList(const QList<QString>& _other) Q_DECL_NOTHROW
19 {
20 std::copy(_other.begin(), _other.end(), std::front_inserter(*this));
21 }
22 inline UriList() Q_DECL_NOTHROW {}
23 inline explicit UriList(const Uri& i) { append(i); }
24 inline UriList(const QList<Uri>& l) : QList<Uri>(l) {}
25#ifdef Q_COMPILER_RVALUE_REFS
26 inline UriList(QList<Uri>&& l) Q_DECL_NOTHROW : QList<Uri>(std::move(l)) {}
27#endif
28#ifdef Q_COMPILER_INITIALIZER_LISTS
29 inline UriList(std::initializer_list<Uri> args) : QList<Uri>(args) {}
30#endif
31
32 UriList& operator=(const QList<QString>& _other)
33 {
34 clear();
35 std::copy(_other.begin(), _other.end(), std::front_inserter(*this));
36 return *this;
37 }
38 UriList& operator=(const QList<Uri>& other)
39 {
41 return *this;
42 }
43#ifdef Q_COMPILER_RVALUE_REFS
44 UriList& operator=(QList<Uri>&& other) Q_DECL_NOTHROW
45 {
46 QList<Uri>::operator=(std::move(other));
47 return *this;
48 }
49#endif
50 QStringList toStringList() const;
51 };
52} // namespace knowCore
53
54#include "MetaType.h"
55KNOWCORE_DECLARE_FULL_METATYPE(knowCore, UriList);
56
57#include "Formatter.h"
58
59// Use QList<knowCore::Uri> formatter
60
61template<>
62struct std::formatter<knowCore::UriList> : public std::formatter<QList<knowCore::Uri>>
63{
64};
Definition Revision.h:9
Definition UriList.h:9
Definition Uri.h:15