zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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