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 › heap › ArenaAllocator › FuzzAllocator › alloc Private Function alloc Doc Source Private Function std.heap.ArenaAllocator.FuzzAllocator.alloc
fn alloc (ctx : *anyopaque , len : usize , alignment : Alignment , ret_addr : usize ) ?[*]u8 Params ctx : *anyopaque len : usize alignment : Alignment ret_addr : usize File heap/ArenaAllocator.zig: 1039
1039
1040
1041
1042
1043
1044
1045
1046
1047 fn alloc (ctx : *anyopaque , len : usize , alignment : Alignment , ret_addr : usize ) ?[*]u8 {
@disableInstrumentation ();
const fa : *FuzzAllocator = @ptrCast (@alignCast (ctx ));
_ = ret_addr ;
const index = @atomicRmw (u8 , &fa .index , .Add , 1 , .monotonic );
if (fa .spurious_failures [index ] != 0 ) return null ;
return fa .fba .threadSafeAllocator ().rawAlloc (len , alignment , @returnAddress ());
}