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 › docs/ › wasm/ › main.zig › decl_category_name
decl_category_name
main.decl_category_name
export fn decl_category_name (decl_index : Decl .Index ) String
File
Code
export fn decl_category_name (decl_index : Decl .Index ) String {
const decl = decl_index .get ();
const ast = decl .file .get_ast ();
const name = switch (decl .categorize ()) {
.namespace , .container => |node | {
if (ast .nodeTag (decl .ast_node ) == .root )
return String .init ("struct" );
string_result .clearRetainingCapacity ();
var buf : [2 ]Ast .Node .Index = undefined ;
const container_decl = ast .fullContainerDecl (&buf , node ).?;
if (container_decl .layout_token ) |t | {
if (ast .tokenTag (t ) == .keyword_extern ) {
string_result .appendSlice (gpa , "extern " ) catch @panic ("OOM" );
}
}
const main_token_tag = ast .tokenTag (container_decl .ast .main_token );
string_result .appendSlice (gpa , main_token_tag .lexeme ().?) catch @panic ("OOM" );
return String .init (string_result .items );
},
.global_variable => "Global Variable" ,
.function => "Function" ,
.type_function => "Type Function" ,
.type , .type_type => "Type" ,
.error_set => "Error Set" ,
.global_const => "Constant" ,
.primitive => "Primitive Value" ,
.alias => "Alias" ,
};
return String .init (name );
}