1 | #ifndef CPR_INTERFACE_H |
---|---|
2 | #define CPR_INTERFACE_H |
3 | |
4 | #include <initializer_list> |
5 | #include <string> |
6 | |
7 | #include "cpr/cprtypes.h" |
8 | |
9 | namespace cpr { |
10 | |
11 | class Interface : public StringHolder<Interface> { |
12 | public: |
13 | Interface() = default; |
14 | // NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions) |
15 | Interface(std::string iface) : StringHolder<Interface>(std::move(iface)) {} |
16 | // NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions) |
17 | Interface(std::string_view iface) : StringHolder<Interface>(iface) {} |
18 | // NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions) |
19 | Interface(const char* iface) : StringHolder<Interface>(iface) {} |
20 | Interface(const char* str, size_t len) : StringHolder<Interface>(str, len) {} |
21 | Interface(const std::initializer_list<std::string> args) : StringHolder<Interface>(args) {} |
22 | Interface(const Interface& other) = default; |
23 | Interface(Interface&& old) noexcept = default; |
24 | ~Interface() override = default; |
25 | |
26 | Interface& operator=(Interface&& old) noexcept = default; |
27 | Interface& operator=(const Interface& other) = default; |
28 | }; |
29 | |
30 | } // namespace cpr |
31 | |
32 | #endif |
33 |