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 library itself.
Zig › compiler/ › translate-c/ › ast.zig › renderParams
renderParams
ast.renderParams
fn renderParams (c : *Context , params : []Payload .Param , is_var_args : bool ) !std .ArrayList (NodeIndex )
File
Code
fn renderParams (c : *Context , params : []Payload .Param , is_var_args : bool ) !std .ArrayList (NodeIndex ) {
_ = try c .addToken (.l_paren , "(" );
var rendered : std .ArrayList (NodeIndex ) = .empty ;
errdefer rendered .deinit (c .gpa );
try rendered .ensureUnusedCapacity (c .gpa , @max (params .len , 1 ));
for (params , 0 ..) |param , i | {
if (i != 0 ) _ = try c .addToken (.comma , "," );
if (param .is_noalias ) _ = try c .addToken (.keyword_noalias , "noalias" );
if (param .name ) |some | {
_ = try c .addIdentifier (some );
_ = try c .addToken (.colon , ":" );
}
if (param .type .tag () == .@"anytype" ) {
_ = try c .addToken (.keyword_anytype , "anytype" );
continue ;
}
rendered .appendAssumeCapacity (try renderNode (c , param .type ));
}
if (is_var_args ) {
if (params .len != 0 ) _ = try c .addToken (.comma , "," );
_ = try c .addToken (.ellipsis3 , "..." );
}
_ = try c .addToken (.r_paren , ")" );
return rendered ;
}