zig/test/standalone/simple/std_enums_big_enums.zig
Ali Cheraghi dec1163fbb
all: replace all @Type usages
Co-authored-by: Matthew Lugg <mlugg@mlugg.co.uk>
2025-11-22 22:42:38 +00:00

38 lines
1.2 KiB
Zig

const std = @import("std");
// big enums should not hit the eval branch quota
pub fn main() void {
const big = struct {
const Big = Big: {
@setEvalBranchQuota(500000);
var names: [1001][]const u8 = undefined;
var values: [1001]u16 = undefined;
for (values[0..1000], names[0..1000], 0..1000) |*val, *name, i| {
name.* = std.fmt.comptimePrint("field_{d}", .{i});
val.* = i;
}
names[1000] = "field_9999";
values[1000] = 9999;
break :Big @Enum(u16, .exhaustive, &names, &values);
};
};
var set = std.enums.EnumSet(big.Big).init(.{});
_ = &set;
var map = std.enums.EnumMap(big.Big, u8).init(undefined);
map = std.enums.EnumMap(big.Big, u8).initFullWith(undefined);
map = std.enums.EnumMap(big.Big, u8).initFullWithDefault(123, .{});
var multiset = std.enums.EnumMultiset(big.Big).init(.{});
_ = &multiset;
@setEvalBranchQuota(4000);
var bounded_multiset = std.enums.BoundedEnumMultiset(big.Big, u8).init(.{});
_ = &bounded_multiset;
var array = std.enums.EnumArray(big.Big, u8).init(undefined);
array = std.enums.EnumArray(big.Big, u8).initDefault(123, .{});
}