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 library itself.
Zig › std/ › Io/ › Threaded.zig › addressUnixToPosix
addressUnixToPosix
Threaded.addressUnixToPosix
fn addressUnixToPosix (a : *const net .UnixAddress , storage : *UnixAddress ) posix .socklen_t
File
Code
fn addressUnixToPosix (a : *const net .UnixAddress , storage : *UnixAddress ) posix .socklen_t {
storage .un .family = posix .AF .UNIX ;
var path_len = switch (native_os ) {
.windows => @min (a .path .len , storage .un .path .len ),
else => a .path .len ,
};
// use a suffix which is usually the most relevant part of a path.
@memcpy (storage .un .path [0 ..path_len ], a .path [a .path .len - path_len ..]);
if (storage .un .path .len - path_len > 0 ) {
@branchHint (.likely );
storage .un .path [path_len ] = 0 ;
path_len += 1 ;
}
switch (native_os ) {
.windows => {
if (storage .un .path [0 ] == 0 ) @memset (storage .un .path [path_len ..], 0 );
return @sizeOf (posix .sockaddr .un );
},
else => return @intCast (@offsetOf (posix .sockaddr .un , "path" ) + path_len ),
}
}