From 03463de7431151ceeafee96a53ed5b3328a40f75 Mon Sep 17 00:00:00 2001 From: jaina heartles Date: Tue, 13 Dec 2022 02:05:00 -0800 Subject: [PATCH] Support types that can't be zero-initialized --- src/template/lib.zig | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/template/lib.zig b/src/template/lib.zig index bfcf5d3..b9d6acb 100644 --- a/src/template/lib.zig +++ b/src/template/lib.zig @@ -304,7 +304,11 @@ fn AddCapture(comptime Root: type, comptime name: []const u8, comptime Val: type fn addCapture(root: anytype, comptime name: []const u8, val: anytype) AddCapture(@TypeOf(root), name, @TypeOf(val)) { if (comptime std.mem.eql(u8, name, "_")) return root; - var result = std.mem.zeroInit(AddCapture(@TypeOf(root), name, @TypeOf(val)), root); + + var result: AddCapture(@TypeOf(root), name, @TypeOf(val)) = undefined; + inline for (std.meta.fields(@TypeOf(root))) |f| { + @field(result, f.name) = @field(root, f.name); + } @field(result, name) = val; return result; }