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/ › Build/ › Cache.zig › File
File
Cache.File
pub const File = struct
File
Code
pub const File = struct {
prefixed_path : PrefixedPath ,
max_file_size : ?usize ,
handle : ?Io .File ,
stat : Stat ,
bin_digest : BinDigest ,
contents : ?[]const u8 ,
pub const Stat = struct {
inode : Io .File .INode ,
size : u64 ,
mtime : Io .Timestamp ,
pub fn fromFs (fs_stat : Io .File .Stat ) Stat {
return .{
.inode = fs_stat .inode ,
.size = fs_stat .size ,
.mtime = fs_stat .mtime ,
};
}
};
pub fn deinit (self : *File , gpa : Allocator ) void {
gpa .free (self .prefixed_path .sub_path );
if (self .contents ) |contents | {
gpa .free (contents );
self .contents = null ;
}
self .* = undefined ;
}
pub fn updateMaxSize (file : *File , new_max_size : ?usize ) void {
const new = new_max_size orelse return ;
file .max_file_size = if (file .max_file_size ) |old | @max (old , new ) else new ;
}
pub fn updateHandle (file : *File , new_handle : ?Io .File ) void {
const handle = new_handle orelse return ;
file .handle = handle ;
}
}