feature. See also
. The project being documented here (as the example) is the Zig library itself.
Render.renderArrayType
fn renderArrayType(
r: *Render,
array_type: Ast.full.ArrayType,
space: Space,
) Error!void
File
Code
fn renderArrayType(
r: *Render,
array_type: Ast.full.ArrayType,
space: Space,
) Error!void {
const tree = r.tree;
const ais = r.ais;
const rbracket = tree.firstToken(array_type.ast.elem_type) - 1;
const one_line = tree.tokensOnSameLine(array_type.ast.lbracket, rbracket) and
!try rendersMultiline(r, array_type.ast.elem_count) and
(if (array_type.ast.sentinel.unwrap()) |s| !try rendersMultiline(r, s) else true);
const inner_space = if (one_line) Space.none else Space.newline;
try ais.pushIndent(.normal);
try renderToken(r, array_type.ast.lbracket, inner_space);
try renderExpression(r, array_type.ast.elem_count, inner_space);
if (array_type.ast.sentinel.unwrap()) |sentinel| {
try renderToken(r, tree.firstToken(sentinel) - 1, inner_space);
try renderExpression(r, sentinel, inner_space);
}
ais.popIndent();
try renderToken(r, rbracket, .none);
return renderExpression(r, array_type.ast.elem_type, space);
}