54 BuildUnixAbstractAddress,
63 PosixGetDescriptorFlags,
64 PosixSetDescriptorFlags,
65 WindowsGetHandleInformation,
66 WindowsSetHandleInformation,
75 SetIPv4MulticastLoopback,
76 SetIPv6MulticastLoopback,
79 SetIPv4MulticastInterface,
80 SetIPv6MulticastInterface,
141 explicit constexpr ResultSocket(
bool valid) : result(valid) {}
143 : result(Result::Error(SocketResultCategory, error)), detail(detail)
147 : result(Result::Error(SocketResultCategory, error)), detail(detail), contextKind(contextKind), context(context)
149 constexpr ResultSocket(Result result) : result(result) {}
151 template <
typename ResultLike>
152 constexpr ResultSocket(
const ResultLike& other) : result(other.toResult())
157 return {error, detail, SocketErrorContextKind::NativeError,
SocketErrorContext(nativeError)};
162 return {error, detail, SocketErrorContextKind::ResolverError,
168 return {error, detail, SocketErrorContextKind::RequiredBytes,
174 return {error, detail, SocketErrorContextKind::ActualBytes,
178 explicit constexpr operator bool()
const {
return static_cast<bool>(result); }
179 constexpr operator Result()
const {
return result; }
180 constexpr Result toResult()
const {
return result; }
181 constexpr bool isError(
SocketError error)
const {
return result.isError(SocketResultCategory, error); }
Definition SocketError.h:113
Definition SocketError.h:110
Definition SocketError.h:107
A typed scalar payload for a Socket error. Its interpretation is selected by SocketErrorContextKind.
Definition SocketError.h:105