struct DISPFlags [src]
Fields
Virtuality: enum(u2) { Zero, Virtual, PureVirtual } = .Zero
LocalToUnit: bool = false
Definition: bool = false
Optimized: bool = false
Pure: bool = false
Elemental: bool = false
Recursive: bool = false
MainSubprogram: bool = false
Deleted: bool = false
ReservedBit10: u1 = 0
ObjCDirect: bool = false
Unused: u20 = 0
 Members
- format (Function)
 
Source
 pub const DISPFlags = packed struct(u32) {
    Virtuality: enum(u2) { Zero, Virtual, PureVirtual } = .Zero,
    LocalToUnit: bool = false,
    Definition: bool = false,
    Optimized: bool = false,
    Pure: bool = false,
    Elemental: bool = false,
    Recursive: bool = false,
    MainSubprogram: bool = false,
    Deleted: bool = false,
    ReservedBit10: u1 = 0,
    ObjCDirect: bool = false,
    Unused: u20 = 0,
    pub fn format(self: DISPFlags, w: *Writer) Writer.Error!void {
        var need_pipe = false;
        inline for (@typeInfo(DISPFlags).@"struct".fields) |field| {
            switch (@typeInfo(field.type)) {
                .bool => if (@field(self, field.name)) {
                    if (need_pipe) try w.writeAll(" | ") else need_pipe = true;
                    try w.print("DISPFlag{s}", .{field.name});
                },
                .@"enum" => if (@field(self, field.name) != .Zero) {
                    if (need_pipe) try w.writeAll(" | ") else need_pipe = true;
                    try w.print("DISPFlag{s}", .{@tagName(@field(self, field.name))});
                },
                .int => assert(@field(self, field.name) == 0),
                else => @compileError("bad field type: " ++ field.name ++ ": " ++
                    @typeName(field.type)),
            }
        }
        if (!need_pipe) try w.writeByte('0');
    }
}