pub fn init(init_values: EnumFieldStruct(E, bool, false)) Self init_values: EnumFieldStruct(E, bool, false)258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279 pub fn init(init_values: EnumFieldStruct(E, bool, false)) Self {
@setEvalBranchQuota(2 * @typeInfo(E).@"enum".field_names.len);
var result: Self = .{};
if (@typeInfo(E).@"enum".mode == .exhaustive) {
inline for (0..Self.len) |i| {
const key = comptime Indexer.keyForIndex(i);
const tag = @tagName(key);
if (@field(init_values, tag)) {
result.bits.set(i);
}
}
} else {
inline for (@typeInfo(E).@"enum".field_names) |field_name| {
const key = @field(E, field_name);
if (@field(init_values, field_name)) {
const i = comptime Indexer.indexOf(key);
result.bits.set(i);
}
}
}
return result;
}
Initializes the set using a struct of bools