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/ › debug/ › MachOFile.zig › OFile
OFile
MachOFile.OFile
const OFile = struct
File
Code
const OFile = struct {
mapped_memory : []align (std .heap .page_size_min ) const u8 ,
dwarf : Dwarf ,
strtab : []const u8 ,
symtab_raw : []align (1 ) const macho .nlist_64 ,
symbols_by_name : std .array_hash_map .Custom (u32 , void , void , true ),
const SymbolAdapter = struct {
strtab : []const u8 ,
symtab_raw : []align (1 ) const macho .nlist_64 ,
pub fn hash (ctx : SymbolAdapter , sym_name : []const u8 ) u32 {
_ = ctx ;
return @truncate (std .hash .Wyhash .hash (0 , sym_name ));
}
pub fn eql (ctx : SymbolAdapter , a_sym_name : []const u8 , b_sym_index : u32 , b_index : usize ) bool {
_ = b_index ;
var b_sym = ctx .symtab_raw [b_sym_index ];
if (builtin .cpu .arch .endian () != .little ) std .mem .byteSwapAllFields (macho .nlist_64 , &b_sym );
const b_sym_name = std .mem .sliceTo (ctx .strtab [b_sym .n_strx ..], 0 );
return mem .eql (u8 , a_sym_name , b_sym_name );
}
};
}