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 › Kqueue › netBindIp Private Function netBindIp Doc Source Private Function std.Io.Kqueue.netBindIp
fn netBindIp (
userdata : ?*anyopaque ,
address : *const net .IpAddress ,
options : net .IpAddress .BindOptions ,
) net .IpAddress .BindError !net .Socket Params userdata : ?*anyopaque address : *const net .IpAddress options : net .IpAddress .BindOptions File Io/Kqueue.zig: 1018
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033 fn netBindIp (
userdata : ?*anyopaque ,
address : *const net .IpAddress ,
options : net .IpAddress .BindOptions ,
) net .IpAddress .BindError !net .Socket {
const k : *Kqueue = @ptrCast (@alignCast (userdata ));
const family = Io .Threaded .posixAddressFamily (address );
const socket_fd = try openSocketPosix (k , family , options );
errdefer closeFd (socket_fd );
var storage : Io .Threaded .PosixAddress = undefined ;
var addr_len = Io .Threaded .addressToPosix (address , &storage );
try posixBind (k , socket_fd , &storage .any , addr_len );
if (options .allow_broadcast ) try setSocketOption (k , socket_fd , posix .SOL .SOCKET , posix .SO .BROADCAST , 1 );
try posixGetSockName (k , socket_fd , &storage .any , &addr_len );
return .{ .handle = socket_fd , .address = Io .Threaded .addressFromPosix (&storage ) };
}