DoxigAlpha

format

Function parameters

Parameters

#
w:*Writer

Type definitions in this namespace

Types

#

Functions in this namespace

Functions

#

= 16

Values

#

Source

Implementation

#
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');
}