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

Fields

default = std.math.maxInt(u6)
_

Functions

FunctionfromByteUnits[src]

pub fn fromByteUnits(bytes: u64) Alignment

Parameters

bytes: u64

Source Code

Source code
pub fn fromByteUnits(bytes: u64) Alignment {
    if (bytes == 0) return .default;
    assert(std.math.isPowerOfTwo(bytes));
    assert(bytes <= 1 << 32);
    return @enumFromInt(@ctz(bytes));
}

FunctiontoByteUnits[src]

pub fn toByteUnits(self: Alignment) ?u64

Parameters

self: Alignment

Source Code

Source code
pub fn toByteUnits(self: Alignment) ?u64 {
    return if (self == .default) null else @as(u64, 1) << @intFromEnum(self);
}

FunctiontoLlvm[src]

pub fn toLlvm(self: Alignment) u6

Parameters

self: Alignment

Source Code

Source code
pub fn toLlvm(self: Alignment) u6 {
    return if (self == .default) 0 else (@intFromEnum(self) + 1);
}

Functionformat[src]

pub fn format( self: Alignment, comptime prefix: []const u8, _: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void

Parameters

self: Alignment
prefix: []const u8

Source Code

Source code
pub fn format(
    self: Alignment,
    comptime prefix: []const u8,
    _: std.fmt.FormatOptions,
    writer: anytype,
) @TypeOf(writer).Error!void {
    try writer.print("{s}align {d}", .{ prefix, self.toByteUnits() orelse return });
}

Source Code

Source code
pub const Alignment = enum(u6) {
    default = std.math.maxInt(u6),
    _,

    pub fn fromByteUnits(bytes: u64) Alignment {
        if (bytes == 0) return .default;
        assert(std.math.isPowerOfTwo(bytes));
        assert(bytes <= 1 << 32);
        return @enumFromInt(@ctz(bytes));
    }

    pub fn toByteUnits(self: Alignment) ?u64 {
        return if (self == .default) null else @as(u64, 1) << @intFromEnum(self);
    }

    pub fn toLlvm(self: Alignment) u6 {
        return if (self == .default) 0 else (@intFromEnum(self) + 1);
    }

    pub fn format(
        self: Alignment,
        comptime prefix: []const u8,
        _: std.fmt.FormatOptions,
        writer: anytype,
    ) @TypeOf(writer).Error!void {
        try writer.print("{s}align {d}", .{ prefix, self.toByteUnits() orelse return });
    }
}