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/ › AstGen.zig › identAsString
identAsString
AstGen.identAsString
fn identAsString (astgen : *AstGen , ident_token : Ast .TokenIndex ) !Zir .NullTerminatedString
File
Code
fn identAsString (astgen : *AstGen , ident_token : Ast .TokenIndex ) !Zir .NullTerminatedString {
const gpa = astgen .gpa ;
const string_bytes = &astgen .string_bytes ;
const str_index : u32 = @intCast (string_bytes .items .len );
try astgen .appendIdentStr (ident_token , string_bytes );
const key : []const u8 = string_bytes .items [str_index ..];
const gop = try astgen .string_table .getOrPutContextAdapted (gpa , key , StringIndexAdapter {
.bytes = string_bytes ,
}, StringIndexContext {
.bytes = string_bytes ,
});
if (gop .found_existing ) {
string_bytes .shrinkRetainingCapacity (str_index );
return @fromBackingInt (@intCast (gop .key_ptr .*));
} else {
gop .key_ptr .* = str_index ;
try string_bytes .append (gpa , 0 );
return @fromBackingInt (@intCast (str_index ));
}
}