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 › std/ › zig/ › Ast.zig › switchFull
switchFull
Ast.switchFull
pub fn switchFull (tree : Ast , node : Node .Index ) full .Switch
File
Code
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 ,
};
}