20 enum class Type : uint8_t {
26 static URI from_any(std::string_view uri);
27 static URI from_ipv4(std::string_view uri);
28 static URI from_ipv6(std::string_view uri);
29 static URI from_domain(std::string_view uri);
31 URI(
Type type, std::string_view host, uint16_t port) : m_type(type), m_host(host), m_port(port) {}
33 bool operator==(
const URI& a)
const {
return m_type == a.m_type && m_host == a.m_host && m_port == a.m_port; }
37 const std::string&
host()
const {
return m_host; }
39 uint16_t
port()
const {
return m_port; }
45 const std::string m_host;
46 const uint16_t m_port;