diff --git a/src/lib.zig b/src/lib.zig index 95bfa98a0a7e5de3102db1ee7e1ca0049a9a65ad..ed633a9548649c6fbf09b4418375cab670bd03c7 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -642,3 +642,11 @@ pub fn coalescePartial(comptime T: type, into: T, from: Partial(T)) T { } return temp; } + +pub fn joinPartial(comptime P: type, a: P, b: P) P { + var temp = a; + inline for (comptime std.meta.fieldNames(P)) |name| { + if (@field(b, name)) |val| @field(temp, name) = val; + } + return temp; +}