1 #include "types.hpp" 2 3 #include <fmt/format.h> 4 5 void phosphor::network::IfAddr::invalidPfx(uint8_t pfx) 6 { 7 throw std::invalid_argument(fmt::format("Invalid prefix {}", pfx)); 8 } 9 10 std::size_t std::hash<in_addr>::operator()(in_addr addr) const noexcept 11 { 12 return std::hash<decltype(addr.s_addr)>{}(addr.s_addr); 13 } 14 15 std::size_t std::hash<in6_addr>::operator()(in6_addr addr) const noexcept 16 { 17 return phosphor::network::hash_multi(addr.s6_addr32[0], addr.s6_addr32[1], 18 addr.s6_addr32[2], addr.s6_addr32[3]); 19 } 20 21 std::size_t std::hash<phosphor::network::IfAddr>::operator()( 22 phosphor::network::IfAddr addr) const noexcept 23 { 24 return phosphor::network::hash_multi(addr.getAddr(), addr.getPfx()); 25 } 26 27 std::string std::to_string(ether_addr value) 28 { 29 return string(phosphor::network::detail::ToStrBuf<ether_addr>{}(value)); 30 } 31 std::string std::to_string(in_addr value) 32 { 33 return string(phosphor::network::detail::ToStrBuf<in_addr>{}(value)); 34 } 35 std::string std::to_string(in6_addr value) 36 { 37 return string(phosphor::network::detail::ToStrBuf<in6_addr>{}(value)); 38 } 39 std::string std::to_string(phosphor::network::InAddrAny value) 40 { 41 phosphor::network::detail::ToStrBuf<phosphor::network::InAddrAny> tsb; 42 return string(tsb(value)); 43 } 44 45 std::string std::to_string(phosphor::network::IfAddr value) 46 { 47 phosphor::network::detail::ToStrBuf<phosphor::network::IfAddr> tsb; 48 return string(tsb(value)); 49 } 50