035 capture multi field

○ Planned This feature is planned but not yet implemented.

Multi-field captured updating multiple captures: captured { inner: 42, outer: 99 }

Code

// Test: Single `captured` block updates multiple captures simultaneously
// This demonstrates that captures create a combined state space where
// field names must be unique, and `captured { a: X, b: Y }` updates
// ALL captures that own those fields.

~import "$std/io"
~import "$std/control"

const std = @import("std");

~event print_results { outer_val: i32, inner_val: i32 }

~proc print_results {
    std.debug.print("{d},{d}\n", .{outer_val, inner_val});
}

// Outer capture owns `outer`, inner capture owns `inner`
// A single `captured` block updates BOTH captures at once
~capture(expr: { outer: @as(i32, 0) })
| as o |> capture(expr: { inner: @as(i32, 0) })
    | as |> captured { inner: 42, outer: 99 }
    | captured result |> print_results(outer_val: o.outer, inner_val: result.inner)
| captured |> _
input.kz

Expected Output

99,42

Test Configuration

MUST_RUN