diff --git a/src/lib.zig b/src/lib.zig index 98894553e3e9a3807c1f5ef2afdc32c20ff92882..a9c7870e04019befc9988a5dbf596d0f80258f16 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -269,3 +269,9 @@ pub fn positionalInit(comptime T: type, args: FieldsTuple(T)) T { pub fn d2index(d1len: usize, d1: usize, d2: usize) usize { return (d1len * d2) + d1; } + +pub fn ensureFieldSubset(comptime L: type, comptime R: type) void { + for (std.meta.fields(L)) |item| { + if (!@hasField(R, item.name)) @compileError(std.fmt.comptimePrint("{s} is missing the {s} field from {s}", .{ R, item.name, L })); + } +}