Skip to content

Add tuple return support for multiple successive renders#7

Merged
carldebilly merged 3 commits intomainfrom
dev/cdb/multiple-returns
Mar 4, 2026
Merged

Add tuple return support for multiple successive renders#7
carldebilly merged 3 commits intomainfrom
dev/cdb/multiple-returns

Conversation

@carldebilly
Copy link
Member

Summary

  • Handlers can now return C# ValueTuples to produce multiple results rendered separately in sequence
  • Each tuple element goes through the full rendering pipeline independently (transformer, colorization, output)
  • Works with all return styles: sync, Task<(T1,T2)>, ValueTask<(T1,T2)>, up to 8 elements
  • Navigation instructions in tuples are only applied on the last element
  • Exit code is determined by the last element

Example

app.Map("status", () => ("Current user: alice", Results.Success("All systems operational")));

This renders two separate outputs: the plain string first, then the success result.

Handlers can now return C# ValueTuples to produce multiple results
rendered separately in sequence. Detection uses ITuple at render time;
no changes needed to CommandInvoker or output transformers.
@carldebilly carldebilly merged commit 82270ad into main Mar 4, 2026
10 checks passed
@carldebilly carldebilly deleted the dev/cdb/multiple-returns branch March 4, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant