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 › array_hash_map › Custom › getIndexAdapted Public Function getIndexAdapted Doc Source Public Function std.array_hash_map.Custom.getIndexAdapted
pub fn getIndexAdapted (self : Self , key : anytype , ctx : anytype ) ?usize Params File array_hash_map.zig: 580
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599 pub fn getIndexAdapted (self : Self , key : anytype , ctx : anytype ) ?usize {
const header = self .index_header orelse {
// Linear scan.
const h = if (store_hash ) checkedHash (ctx , key ) else {};
const slice = self .entries .slice ();
const hashes_array = slice .items (.hash );
const keys_array = slice .items (.key );
for (keys_array , 0 ..) |*item_key , i | {
if (hashes_array [i ] == h and checkedEql (ctx , key , item_key .*, i )) {
return i ;
}
}
return null ;
};
switch (header .capacityIndexType ()) {
.u8 => return self .getIndexWithHeaderGeneric (key , ctx , header , u8 ),
.u16 => return self .getIndexWithHeaderGeneric (key , ctx , header , u16 ),
.u32 => return self .getIndexWithHeaderGeneric (key , ctx , header , u32 ),
}
}