enum Alignment [src]
Fields
default = std.math.maxInt(u6)
_
Members
- format (Function)
- fromByteUnits (Function)
- toByteUnits (Function)
- toLlvm (Function)
Source
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 });
}
}