```zig pub const Obj = struct { pub fn get() *Obj { // ... } pub fn wrap(self: *Obj, async_fn: comptime fn() callconv(.Async) void) void { var frame = async self.internalWrap(async_fn); // ... nosuspend await frame; } fn internalWrap(self: *Obj, async_fn: comptime fn() callconv(.Async) void) void { suspend { // ... } var bytes: [1024]u8 align(@alignOf(@Frame(async_fn))) = undefined; var frame = @asyncCall(&bytes, null, async_fn, .{}); await frame; } } pub fn main() void { Obj.get().wrap(asyncFn); } pub fn asyncFn() void { suspend; } ```