fn renderNodeOpt(c: *Context, node: Node) Allocator.Error!?NodeIndex
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), } }