lintel 0.2.0
Loading...
Searching...
No Matches
PropertyRepositoryType.h
Go to the documentation of this file.
1#ifndef PLC_PROPERTYREPOSITORYTYPE_H
2#define PLC_PROPERTYREPOSITORYTYPE_H
3
4#include <magic_enum/magic_enum.hpp>
5#include <set>
6#include <string>
7
8namespace lintel {
11{
12public:
13 // value is defining priority of property repository type
21
23
24 constexpr PropertyRepositoryType(Value value) : m_value(value) {}
25
27 constexpr explicit PropertyRepositoryType(std::string_view enumName)
29 {}
30
31 constexpr operator Value() const { return m_value; }
32
33 explicit operator bool() = delete;
34
36 static std::set<Value> values()
37 {
38 auto values = magic_enum::enum_values<Value>();
39 return std::set<Value>(values.begin(), values.end());
40 }
41
43 std::string toString() const { return std::string(magic_enum::enum_name<>(m_value)); }
44
45 friend std::ostream &operator<<(std::ostream &os, const PropertyRepositoryType &propertyRepositoryPriority)
46 {
48 return os;
49 }
50
51private:
52 Value m_value;
53};
54
55}// namespace lintel
56#endif// PLC_PROPERTYREPOSITORYTYPE_H
Definition PropertyRepositoryType.h:11
friend std::ostream & operator<<(std::ostream &os, const PropertyRepositoryType &propertyRepositoryPriority)
Definition PropertyRepositoryType.h:45
Value
Definition PropertyRepositoryType.h:14
@ SHM_REPOSITORY
Definition PropertyRepositoryType.h:19
@ UNDEFINED
Definition PropertyRepositoryType.h:15
@ FILE_REPOSITORY
Definition PropertyRepositoryType.h:17
@ DEFAULT
Definition PropertyRepositoryType.h:16
@ DATABASE_REPOSITORY
Definition PropertyRepositoryType.h:18
std::string toString() const
Definition PropertyRepositoryType.h:43
constexpr PropertyRepositoryType(std::string_view enumName)
Definition PropertyRepositoryType.h:27
constexpr PropertyRepositoryType(Value value)
Definition PropertyRepositoryType.h:24
static std::set< Value > values()
Definition PropertyRepositoryType.h:36
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9