aboutsummaryrefslogtreecommitdiff
path: root/lib/std/meta/trailer_flags.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/meta/trailer_flags.zig')
-rw-r--r--lib/std/meta/trailer_flags.zig20
1 files changed, 2 insertions, 18 deletions
diff --git a/lib/std/meta/trailer_flags.zig b/lib/std/meta/trailer_flags.zig
index 40fbc57dfe..a5882d9e1b 100644
--- a/lib/std/meta/trailer_flags.zig
+++ b/lib/std/meta/trailer_flags.zig
@@ -21,20 +21,7 @@ pub fn TrailerFlags(comptime Fields: type) type {
pub const Int = meta.Int(.unsigned, bit_count);
pub const bit_count = @typeInfo(Fields).Struct.fields.len;
- pub const FieldEnum = blk: {
- comptime var fields: [bit_count]TypeInfo.EnumField = undefined;
- inline for (@typeInfo(Fields).Struct.fields) |struct_field, i|
- fields[i] = .{ .name = struct_field.name, .value = i };
- break :blk @Type(.{
- .Enum = .{
- .layout = .Auto,
- .tag_type = std.math.IntFittingRange(0, bit_count - 1),
- .fields = &fields,
- .decls = &[_]TypeInfo.Declaration{},
- .is_exhaustive = true,
- },
- });
- };
+ pub const FieldEnum = std.meta.FieldEnum(Fields);
pub const InitStruct = blk: {
comptime var fields: [bit_count]TypeInfo.StructField = undefined;
@@ -135,10 +122,7 @@ pub fn TrailerFlags(comptime Fields: type) type {
}
pub fn Field(comptime field: FieldEnum) type {
- inline for (@typeInfo(Fields).Struct.fields) |field_info, i| {
- if (i == @enumToInt(field))
- return field_info.field_type;
- }
+ return @typeInfo(Fields).Struct.fields[@enumToInt(field)].field_type;
}
pub fn sizeInBytes(self: Self) usize {