Match β€” Multi-Branch Fan-Out (v1.46.0)

Match renders as a decision hexagon with explicit exits to both SUCCESS and FAIL. When Match is called with explicitly-typed lambda parameters, REslava.Result.Flow emits one typed fail edge per branch β€” all converging on the shared FAIL terminal.

Result<Order, ErrorsOf<ValidationError, InventoryError, PaymentError>>
Checkout(CheckoutRequest request) =>
    Validate(request)
        .Bind(ReserveInventory)
        .Bind(ProcessPayment);

[ResultFlow]
public string PlaceOrder(CheckoutRequest req) =>
    Checkout(req).Match(
        (Order o)             => Confirm(o),
        (ValidationError v)   => Reject(v.Message),
        (InventoryError i)    => Retry(i),
        (PaymentError p)      => Decline(p));

Match hexagon with typed N-branch fan-out

The typed labels (ValidationError, InventoryError, PaymentError) are extracted from the explicit parameter type annotations in each lambda β€” no body scanning needed. For plain Result<T> with a 2-argument Match, a generic -->|fail| FAIL edge is emitted instead. REslava.ResultFlow (library-agnostic) emits the hexagon shape and generic 2-branch edges only.