zigar.function.Promise(T).any(self) - chung-leong/zigar GitHub Wiki

Convert the promise to one whose yield() method accepts anyerror.

Example:

const std = @import("std");
const zigar = @import("zigar");

fn hello() error{PantsOnFire}!void {
    return error.PantsOnFire;
}

fn resolve(_: ?*anyopaque, _: error{PantsOnFire}!void) void {
    return;
}

comptime {
    const promise1: zigar.function.PromiseOf(hello) = .{ .ptr = null, .callback = &resolve };
    const promise2 = promise1.any();
    std.debug.assert(@TypeOf(promise2) == zigar.function.Promise(anyerror!void));
}

Arguments:

  • self: @This()

Return value:

Promise(anyerror!@typeInfo(T).error_union.payload)


Promise(T)