Program Listing for File address_info.hpp
↰ Return to documentation for file (sockets/include/sockets/detail/address_info.hpp)
#pragma once
#include <lib2k/unreachable.hpp>
#include <cstdint>
#include <iostream>
namespace c2k {
struct AddressInfo {
AddressFamily family = AddressFamily::Unspecified;
std::string address;
std::uint16_t port;
friend std::ostream& operator<<(std::ostream& ostream, AddressInfo const& address_info) {
switch (address_info.family) {
case AddressFamily::Unspecified:
return ostream << "<unspecified address family>";
case AddressFamily::Ipv4:
return ostream << address_info.address << ':' << address_info.port;
case AddressFamily::Ipv6:
return ostream << '[' << address_info.address << "]:" << address_info.port;
}
unreachable();
}
};
} // namespace c2k