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 › statFromLinux
statFromLinux
Threaded.statFromLinux
pub fn statFromLinux (stx : *const std .os .linux .Statx ) Io .UnexpectedError !File .Stat
File
Code
pub fn statFromLinux (stx : *const std .os .linux .Statx ) Io .UnexpectedError !File .Stat {
const actual_mask_int : u32 = @bitCast (stx .mask );
const wanted_mask_int : u32 = @bitCast (linux_statx_check );
if ((actual_mask_int | wanted_mask_int ) != actual_mask_int ) return error .Unexpected ;
return .{
.inode = stx .ino ,
.nlink = stx .nlink ,
.size = stx .size ,
.permissions = .fromMode (stx .mode ),
.kind = statxKind (stx .mode ),
.atime = if (!stx .mask .ATIME ) null else .{
.nanoseconds = @intCast (@as (i128 , stx .atime .sec ) * std .time .ns_per_s + stx .atime .nsec ),
},
.mtime = .{ .nanoseconds = @intCast (@as (i128 , stx .mtime .sec ) * std .time .ns_per_s + stx .mtime .nsec ) },
.ctime = .{ .nanoseconds = @intCast (@as (i128 , stx .ctime .sec ) * std .time .ns_per_s + stx .ctime .nsec ) },
.block_size = if (stx .mask .BLOCKS ) stx .blksize else 1 ,
};
}