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
9namespace cpr {
10
11class 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