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 › mem › Allocator › allocWithOptionsRetAddr Public Function allocWithOptionsRetAddr Doc Source Public Function std.mem.Allocator.allocWithOptionsRetAddr
pub fn allocWithOptionsRetAddr (
self : Allocator ,
comptime Elem : type ,
n : usize ,
/// null means naturally aligned
comptime optional_alignment : ?Alignment ,
comptime optional_sentinel : ?Elem ,
return_address : usize ,
) Error !AllocWithOptionsPayload (Elem , optional_alignment , optional_sentinel ) Params self : Allocator Elem : type n : usize optional_alignment : ?Alignment optional_sentinel : ?Elem return_address : usize Errors File mem/Allocator.zig: 217
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233 pub fn allocWithOptionsRetAddr (
self : Allocator ,
comptime Elem : type ,
n : usize ,
/// null means naturally aligned
comptime optional_alignment : ?Alignment ,
comptime optional_sentinel : ?Elem ,
return_address : usize ,
) Error !AllocWithOptionsPayload (Elem , optional_alignment , optional_sentinel ) {
if (optional_sentinel ) |sentinel | {
const ptr = try self .allocAdvancedWithRetAddr (Elem , optional_alignment , n + 1 , return_address );
ptr [n ] = sentinel ;
return ptr [0 ..n :sentinel ];
} else {
return self .allocAdvancedWithRetAddr (Elem , optional_alignment , n , return_address );
}
}