| 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 |