ziglua icon indicating copy to clipboard operation
ziglua copied to clipboard

Update wrap functions to handle error unions

Open natecraddock opened this issue 2 years ago • 1 comments

It would sometimes be useful to use try in a wrapped zig function and have that propagate as a Lua error. This should be pretty easy to do with comptime

natecraddock avatar Jan 15 '24 00:01 natecraddock

My implementation of autoPushFunction automatically does this.

                if (@typeInfo(info.Fn.return_type.?) == .ErrorUnion) {
                    const result = @call(.auto, function, parameters) catch |err| {
                        lua.raiseErrorStr(@errorName(err), .{});
                    };
                    lua.pushAny(result);
                } else {
                    const result = @call(.auto, function, parameters);
                    lua.pushAny(result);
                }

VisenDev avatar Jan 31 '24 14:01 VisenDev