199 return _addr[0] == 0 && _addr[1] == 0 && _addr[2] == 0 && _addr[3] == 0;
208 std::array<uint32_t, 4> _addr = {};
219concept ip_address = std::same_as<T, ipv4_addr> || std::same_as<T, ipv6_addr>;
299#include "sdkconfig.h"
300#ifdef CONFIG_IDFXX_STD_FORMAT
307struct formatter<
idfxx::net::ipv4_addr> {
308 constexpr auto parse(format_parse_context& ctx) {
return ctx.begin(); }
310 template<
typename FormatContext>
313 return std::copy(s.begin(), s.end(), ctx.out());
318struct formatter<
idfxx::net::ipv6_addr> {
319 constexpr auto parse(format_parse_context& ctx) {
return ctx.begin(); }
321 template<
typename FormatContext>
324 return std::copy(s.begin(), s.end(), ctx.out());
329struct formatter<
idfxx::net::ipv4_info> {
330 constexpr auto parse(format_parse_context& ctx) {
return ctx.begin(); }
332 template<
typename FormatContext>
335 return std::copy(s.begin(), s.end(), ctx.out());
constexpr uint32_t addr() const noexcept
Returns the raw address value in network byte order.
constexpr ipv4_addr(uint8_t a, uint8_t b, uint8_t c, uint8_t d) noexcept
Constructs an IPv4 address from individual octets.
constexpr bool operator==(const ipv4_addr &) const noexcept=default
Compares two IPv4 addresses for equality.
static constexpr ipv4_addr any() noexcept
Returns the IPv4 wildcard address (0.0.0.0).
constexpr ipv4_addr(uint32_t addr) noexcept
Constructs an IPv4 address from a raw network-byte-order value.
static std::optional< ipv4_addr > parse(std::string_view s) noexcept
Parses an IPv4 address from dotted-decimal notation.
constexpr bool is_any() const noexcept
Tests whether this is a zero (unset) address.
constexpr ipv4_addr() noexcept=default
Constructs a zero-initialized IPv4 address (0.0.0.0).
constexpr uint8_t zone() const noexcept
Returns the zone ID.
constexpr ipv6_addr() noexcept=default
Constructs a zero-initialized IPv6 address (::).
constexpr const std::array< uint32_t, 4 > & addr() const noexcept
Returns the four 32-bit words of the address.
constexpr bool is_any() const noexcept
Tests whether this is a zero (unset) address.
constexpr bool operator==(const ipv6_addr &) const noexcept=default
Compares two IPv6 addresses for equality (including zone).
static constexpr ipv6_addr any() noexcept
Returns the IPv6 wildcard address (::).
constexpr ipv6_addr(std::array< uint32_t, 4 > words, uint8_t zone=0) noexcept
Constructs an IPv6 address from four 32-bit words.
static std::optional< ipv6_addr > parse(std::string_view s) noexcept
Parses an IPv6 address from its text representation.
Concept matching either ipv4_addr or ipv6_addr.
std::string to_string(core_id c)
Returns a string representation of a CPU core identifier.
std::expected< T, std::error_code > result
result type wrapping a value or error code.
IPv4 network interface information.
constexpr bool operator==(const ipv4_info &) const noexcept=default
Compares two ipv4_info structs for equality.
IPv6 network interface information.