test_while_error_capture.zig (494B) - Raw
1 const expect = @import("std").testing.expect; 2 3 test "while error union capture" { 4 var sum1: u32 = 0; 5 numbers_left = 3; 6 while (eventuallyErrorSequence()) |value| { 7 sum1 += value; 8 } else |err| { 9 try expect(err == error.ReachedZero); 10 } 11 } 12 13 var numbers_left: u32 = undefined; 14 15 fn eventuallyErrorSequence() anyerror!u32 { 16 return if (numbers_left == 0) error.ReachedZero else blk: { 17 numbers_left -= 1; 18 break :blk numbers_left; 19 }; 20 } 21 22 // test