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 › SafeAllocator › FuzzSingleThreadedAllocator › allocIndex Private Function allocIndex Doc Source Private Function std.heap.SafeAllocator.FuzzSingleThreadedAllocator.allocIndex
fn allocIndex (f : *FuzzSingleThreadedAllocator , memory : []u8 , alignment : Alignment ) usize Params File heap/SafeAllocator.zig: 1518
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535 fn allocIndex (f : *FuzzSingleThreadedAllocator , memory : []u8 , alignment : Alignment ) usize {
@disableInstrumentation ();
const allocs_slice = f .allocs .slice ();
const i = mem .findScalar ([*]u8 , allocs_slice .items (.ptr ), memory .ptr ) orelse panic (
"invalid SafeAllocator free of {f}" ,
.{FormatMemory { .memory = memory , .alignment = alignment }},
);
const expected_len = allocs_slice .items (.len )[i ];
const expected_align = allocs_slice .items (.alignment )[i ];
if (memory .len != expected_len or allocs_slice .items (.alignment )[i ] != expected_align ) {
panic ("SafeAllocator free {f} mismatches alloc {f}" , .{
FormatMemory { .memory = memory , .alignment = alignment },
FormatMemory { .memory = memory .ptr [0 ..expected_len ], .alignment = expected_align },
});
}
return i ;
}