Zig NEWS

Discussion on: Closure Pattern in Zig

 
houghtonap profile image
Andrew Houghton

In response to your comment I added the following test which confirms your assertion that the presented implementation works only with compile time static values and my misunderstanding of Zig's comptime concept.

test "[Comptime Only Issue]" {

    // Test reuse invocation of the closure.
    var from: u32 = undefined;
    var to: u32 = undefined;

    from = 2;
    to = 5;

    const closure = TextInRange(from, to);

    const text = closure("0123456789");
    print("text = {s}\n", .{text});
}
Enter fullscreen mode Exit fullscreen mode

After further review of the presented implementation and a few minor changes to ClosureType and ClosureBind the above test passes using runtime variables. I'll update the article. Thanks for clarifying Zig's comptime concept.