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 › ubsan_rt.zig › TypeDescriptor
TypeDescriptor
ubsan_rt.TypeDescriptor
const TypeDescriptor = extern struct
File
Code
const TypeDescriptor = extern struct {
kind : Kind ,
info : Info ,
const Kind = enum (u16 ) {
integer = 0x0000 ,
float = 0x0001 ,
unknown = 0xFFFF ,
};
const Info = extern union {
integer : packed struct (u16 ) {
signed : bool ,
bit_width : u15 ,
},
float : u16 ,
};
fn getIntegerSize (desc : TypeDescriptor ) u64 {
assert (desc .kind == .integer );
const bit_width = desc .info .integer .bit_width ;
return @as (u64 , 1 ) << @intCast (bit_width );
}
fn isSigned (desc : TypeDescriptor ) bool {
return desc .kind == .integer and desc .info .integer .signed ;
}
fn getName (desc : *const TypeDescriptor ) [:0 ]const u8 {
return std .mem .span (@as ([*:0 ]const u8 , @ptrCast (desc )) + @sizeOf (TypeDescriptor ));
}
}