enumstd.zig.llvm.Builder.Attributes[src]

Fields

none
_

Functions

Functionslice[src]

pub fn slice(self: Attributes, builder: *const Builder) []const Attribute.Index

Parameters

builder: *const Builder

Source Code

Source code
pub fn slice(self: Attributes, builder: *const Builder) []const Attribute.Index {
    const start = builder.attributes_indices.items[@intFromEnum(self)];
    const end = builder.attributes_indices.items[@intFromEnum(self) + 1];
    return @ptrCast(builder.attributes_extra.items[start..end]);
}

Functionfmt[src]

pub fn fmt(self: Attributes, builder: *const Builder) std.fmt.Formatter(format)

Parameters

builder: *const Builder

Source Code

Source code
pub fn fmt(self: Attributes, builder: *const Builder) std.fmt.Formatter(format) {
    return .{ .data = .{ .attributes = self, .builder = builder } };
}

Source Code

Source code
pub const Attributes = enum(u32) {
    none,
    _,

    pub fn slice(self: Attributes, builder: *const Builder) []const Attribute.Index {
        const start = builder.attributes_indices.items[@intFromEnum(self)];
        const end = builder.attributes_indices.items[@intFromEnum(self) + 1];
        return @ptrCast(builder.attributes_extra.items[start..end]);
    }

    const FormatData = struct {
        attributes: Attributes,
        builder: *const Builder,
    };
    fn format(
        data: FormatData,
        comptime fmt_str: []const u8,
        fmt_opts: std.fmt.FormatOptions,
        writer: anytype,
    ) @TypeOf(writer).Error!void {
        for (data.attributes.slice(data.builder)) |attribute_index| try Attribute.Index.format(.{
            .attribute_index = attribute_index,
            .builder = data.builder,
        }, fmt_str, fmt_opts, writer);
    }
    pub fn fmt(self: Attributes, builder: *const Builder) std.fmt.Formatter(format) {
        return .{ .data = .{ .attributes = self, .builder = builder } };
    }
}