33 lines
1.1 KiB
C
33 lines
1.1 KiB
C
|
#ifndef CPR_INTERFACE_H
|
||
|
#define CPR_INTERFACE_H
|
||
|
|
||
|
#include <initializer_list>
|
||
|
#include <string>
|
||
|
|
||
|
#include "cpr/cprtypes.h"
|
||
|
|
||
|
namespace cpr {
|
||
|
|
||
|
class Interface : public StringHolder<Interface> {
|
||
|
public:
|
||
|
Interface() = default;
|
||
|
// NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions)
|
||
|
Interface(std::string iface) : StringHolder<Interface>(std::move(iface)) {}
|
||
|
// NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions)
|
||
|
Interface(std::string_view iface) : StringHolder<Interface>(iface) {}
|
||
|
// NOLINTNEXTLINE(google-explicit-constructor, hicpp-explicit-conversions)
|
||
|
Interface(const char* iface) : StringHolder<Interface>(iface) {}
|
||
|
Interface(const char* str, size_t len) : StringHolder<Interface>(str, len) {}
|
||
|
Interface(const std::initializer_list<std::string> args) : StringHolder<Interface>(args) {}
|
||
|
Interface(const Interface& other) = default;
|
||
|
Interface(Interface&& old) noexcept = default;
|
||
|
~Interface() override = default;
|
||
|
|
||
|
Interface& operator=(Interface&& old) noexcept = default;
|
||
|
Interface& operator=(const Interface& other) = default;
|
||
|
};
|
||
|
|
||
|
} // namespace cpr
|
||
|
|
||
|
#endif
|