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 › bindSocketIpAfd Private Function bindSocketIpAfd Doc Source Private Function std.Io.Threaded.bindSocketIpAfd
fn bindSocketIpAfd (socket_handle : net .Socket .Handle , address : *const IpAddress , mode : windows .AFD .BIND_INFO .MODE ) !IpAddress Params File Io/Threaded.zig: 12684
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701 fn bindSocketIpAfd (socket_handle : net .Socket .Handle , address : *const IpAddress , mode : windows .AFD .BIND_INFO .MODE ) !IpAddress {
const Storage = extern struct { Info : windows .AFD .BIND_INFO , Address : PosixAddress };
var storage : Storage = .{ .Info = .{ .Mode = mode }, .Address = undefined };
const addr_len = addressToPosix (address , &storage .Address );
switch ((try deviceIoControl (&.{
.file = .{ .handle = socket_handle , .flags = .{ .nonblocking = true } },
.code = windows .IOCTL .AFD .BIND ,
.in = @as ([]const u8 , @ptrCast (&storage ))[0 .. @offsetOf (Storage , "Address" ) + addr_len ],
.out = @as ([]u8 , @ptrCast (&storage .Address ))[0 ..addr_len ],
})).u .Status ) {
.SUCCESS => {},
.CANCELLED => unreachable ,
.INSUFFICIENT_RESOURCES => return error .SystemResources ,
.SHARING_VIOLATION => return error .AddressInUse ,
else => |status | return windows .unexpectedStatus (status ),
}
return addressFromPosix (&storage .Address );
}