inline fn allBitPatternsValid(T: type) bool T: type330
331
332
333
334
335
336
337
338
339inline fn allBitPatternsValid(T: type) bool {
return comptime switch (@typeInfo(T)) {
.void, .bool, .int, .float => true,
inline .@"struct", .@"union" => |c| c.layout == .@"packed" and for (c.field_types) |f_type| {
if (!allBitPatternsValid(f_type)) break false;
} else true,
.@"enum" => |e| e.mode == .nonexhaustive,
else => unreachable,
};
}