Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › Io › Threaded › posixSocketModeProtocol Public Type Function posixSocketModeProtocol Doc Source Public Type Function std.Io.Threaded.posixSocketModeProtocol
pub fn posixSocketModeProtocol (family : posix .sa_family_t , mode : net .Socket .Mode , protocol : ?net .Protocol ) !struct File Io/Threaded.zig: 14356
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378 pub fn posixSocketModeProtocol (family : posix .sa_family_t , mode : net .Socket .Mode , protocol : ?net .Protocol ) !struct { u32 , u32 } {
return .{
switch (mode ) {
.stream => posix .SOCK .STREAM ,
.dgram => posix .SOCK .DGRAM ,
.seqpacket => posix .SOCK .SEQPACKET ,
.raw => posix .SOCK .RAW ,
.rdm => if (@hasDecl (posix .SOCK , "RDM" )) posix .SOCK .RDM else return error .OptionUnsupported ,
},
if (protocol ) |p | @backingInt (p ) else if (is_windows ) switch (family ) {
posix .AF .UNIX => switch (mode ) {
.stream => 0 ,
else => return error .ProtocolUnsupportedByAddressFamily ,
},
posix .AF .INET , posix .AF .INET6 => @backingInt (@as (net .Protocol , switch (mode ) {
.stream => .tcp ,
.dgram => .udp ,
else => return error .ProtocolUnsupportedByAddressFamily ,
})),
else => return error .ProtocolUnsupportedByAddressFamily ,
} else 0 ,
};
}