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 › zig › Ast › switchFull Public Function switchFull Doc Source Public Function std.zig.Ast.switchFull
pub fn switchFull (tree : Ast , node : Node .Index ) full .Switch Params File zig/Ast.zig: 1833
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850 pub fn switchFull (tree : Ast , node : Node .Index ) full .Switch {
const main_token = tree .nodeMainToken (node );
const switch_token : TokenIndex , const label_token : ?TokenIndex = switch (tree .tokenTag (main_token )) {
.identifier => .{ main_token + 2 , main_token },
.keyword_switch => .{ main_token , null },
else => unreachable ,
};
const condition , const extra_index = tree .nodeData (node ).node_and_extra ;
const cases = tree .extraDataSlice (tree .extraData (extra_index , Ast .Node .SubRange ), Node .Index );
return .{
.ast = .{
.switch_token = switch_token ,
.condition = condition ,
.cases = cases ,
},
.label_token = label_token ,
};
}