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 › testing › FailingAllocator › alloc Private Function alloc Doc Source Private Function std.testing.FailingAllocator.alloc
fn alloc (
ctx : *anyopaque ,
len : usize ,
alignment : mem .Alignment ,
return_address : usize ,
) ?[*]u8 Params ctx : *anyopaque len : usize alignment : mem .Alignment return_address : usize File testing/FailingAllocator.zig: 58
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 fn alloc (
ctx : *anyopaque ,
len : usize ,
alignment : mem .Alignment ,
return_address : usize ,
) ?[*]u8 {
const self : *FailingAllocator = @ptrCast (@alignCast (ctx ));
if (self .alloc_index == self .fail_index ) {
if (!self .has_induced_failure ) {
const st = std .debug .captureCurrentStackTrace (.{ .first_address = return_address }, &self .stack_addresses );
@memset (self .stack_addresses [@min (st .return_addresses .len , self .stack_addresses .len )..], 0 );
self .has_induced_failure = true ;
}
return null ;
}
const result = self .internal_allocator .rawAlloc (len , alignment , return_address ) orelse
return null ;
self .allocated_bytes += len ;
self .allocations += 1 ;
self .alloc_index += 1 ;
return result ;
}