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 › Zir › Inst › Declaration › Name Public Enum Name Doc Source Public Enum std.zig.Zir.Inst.Declaration.Name
pub const Name = enum (u32 ) Functions File zig/Zir.zig: 3001
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027 pub const Name = enum (u32 ) {
@"comptime" = std .math .maxInt (u32 ),
unnamed_test = std .math .maxInt (u32 ) - 1 ,
/// Other values are `NullTerminatedString` values, i.e. index into
/// `string_bytes`. If the byte referenced is 0, the decl is a named
/// test, and the actual name begins at the following byte.
_ ,
pub fn isNamedTest (name : Name , zir : Zir ) bool {
return switch (name ) {
.@"comptime" , .unnamed_test => false ,
_ => zir .string_bytes [@backingInt (name )] == 0 ,
};
}
pub fn toString (name : Name , zir : Zir ) ?NullTerminatedString {
switch (name ) {
.@"comptime" , .unnamed_test => return null ,
_ => {},
}
const idx : u32 = @backingInt (name );
if (zir .string_bytes [idx ] == 0 ) {
// Named test
return @fromBackingInt (@intCast (idx + 1 ));
}
return @fromBackingInt (@intCast (idx ));
}
}