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 › debug › Dwarf › expression › StackMachine › Value › asIntegral Public Function asIntegral Doc Source Public Function std.debug.Dwarf.expression.StackMachine.Value.asIntegral
pub fn asIntegral (self : Value ) !addr_type Params File debug/Dwarf/expression.zig: 140
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158 pub fn asIntegral (self : Value ) !addr_type {
return switch (self ) {
.generic => |v | v ,
// TODO: For these two prongs, look up the type and assert it's integral?
.regval_type => |regval_type | regval_type .value ,
.const_type => |const_type | {
const value : u64 = switch (const_type .value_bytes .len ) {
1 => mem .readInt (u8 , const_type .value_bytes [0 ..1 ], native_endian ),
2 => mem .readInt (u16 , const_type .value_bytes [0 ..2 ], native_endian ),
4 => mem .readInt (u32 , const_type .value_bytes [0 ..4 ], native_endian ),
8 => mem .readInt (u64 , const_type .value_bytes [0 ..8 ], native_endian ),
else => return error .InvalidIntegralTypeSize ,
};
return std .math .cast (addr_type , value ) orelse error .TruncatedIntegralType ;
},
};
}