blob: 8467b7699b2475a35b10fc62297a7ec4ec027139 [file] [log] [blame]
William A. Kennington IIIbb0eacc2022-10-21 15:22:06 -07001#include "types.hpp"
2
William A. Kennington IIIb9d7cba2022-11-08 10:54:11 -08003#include <fmt/format.h>
4
William A. Kennington III55bdc362022-11-04 17:57:21 -07005void phosphor::network::IfAddr::invalidPfx(uint8_t pfx)
William A. Kennington IIIb9d7cba2022-11-08 10:54:11 -08006{
7 throw std::invalid_argument(fmt::format("Invalid prefix {}", pfx));
8}
9
William A. Kennington III653114f2022-11-01 22:34:04 -070010std::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
15std::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
William A. Kennington IIIb9d7cba2022-11-08 10:54:11 -080021std::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
William A. Kennington IIIbb0eacc2022-10-21 15:22:06 -070027std::string std::to_string(ether_addr value)
28{
William A. Kennington III55bdc362022-11-04 17:57:21 -070029 return string(phosphor::network::detail::ToStrBuf<ether_addr>{}(value));
William A. Kennington IIIbb0eacc2022-10-21 15:22:06 -070030}
31std::string std::to_string(in_addr value)
32{
William A. Kennington III55bdc362022-11-04 17:57:21 -070033 return string(phosphor::network::detail::ToStrBuf<in_addr>{}(value));
William A. Kennington IIIbb0eacc2022-10-21 15:22:06 -070034}
35std::string std::to_string(in6_addr value)
36{
William A. Kennington III55bdc362022-11-04 17:57:21 -070037 return string(phosphor::network::detail::ToStrBuf<in6_addr>{}(value));
William A. Kennington IIIbb0eacc2022-10-21 15:22:06 -070038}
39std::string std::to_string(phosphor::network::InAddrAny value)
40{
William A. Kennington III55bdc362022-11-04 17:57:21 -070041 phosphor::network::detail::ToStrBuf<phosphor::network::InAddrAny> tsb;
42 return string(tsb(value));
William A. Kennington IIIbb0eacc2022-10-21 15:22:06 -070043}
William A. Kennington IIIb9d7cba2022-11-08 10:54:11 -080044
45std::string std::to_string(phosphor::network::IfAddr value)
46{
William A. Kennington III55bdc362022-11-04 17:57:21 -070047 phosphor::network::detail::ToStrBuf<phosphor::network::IfAddr> tsb;
48 return string(tsb(value));
William A. Kennington IIIb9d7cba2022-11-08 10:54:11 -080049}