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.

renderNodeOpt

ast.renderNodeOpt
fn renderNodeOpt(c: *Context, node: Node) Allocator.Error!?NodeIndex

File

Code

fn renderNodeOpt(c: *Context, node: Node) Allocator.Error!?NodeIndex {
    switch (node.tag()) {
        .warning => {
            const payload = node.castTag(.warning).?.data;
            try c.buf.appendSlice(c.gpa, payload);
            try c.buf.append(c.gpa, '\n');
            return null;
        },
        .discard => {
            const payload = node.castTag(.discard).?.data;
            if (payload.should_skip) return null;

            return try renderNode(c, node);
        },
        else => return try renderNode(c, node),
    }
}