From 149ea696e63022802028e7c302a5a848df698b9f Mon Sep 17 00:00:00 2001 From: kerams Date: Sat, 18 Jan 2025 17:05:17 +0100 Subject: [PATCH] Add YieldFrom to CollectionBuilder --- src/Fabulous.Tests/APISketchTests/TestUI.Widgets.fs | 10 ---------- src/Fabulous/Builders.fs | 8 ++++++++ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/Fabulous.Tests/APISketchTests/TestUI.Widgets.fs b/src/Fabulous.Tests/APISketchTests/TestUI.Widgets.fs index daa31ebec..6dc1d10b2 100644 --- a/src/Fabulous.Tests/APISketchTests/TestUI.Widgets.fs +++ b/src/Fabulous.Tests/APISketchTests/TestUI.Widgets.fs @@ -167,16 +167,6 @@ module TestUI_Widgets = : Content<'msg> = CollectionBuilder.yieldImpl x - [] - static member inline YieldFrom<'msg, 'marker, 'itemMarker when 'msg: equality and 'itemMarker :> IMarker> - (_: CollectionBuilder<'msg, 'marker, IMarker>, x: WidgetBuilder<'msg, 'itemMarker> seq) - : Content<'msg> = - // TODO optimize this one with addMut - { Widgets = x |> Seq.map(fun wb -> wb.Compile()) |> Seq.toArray |> MutStackArray1.fromArray } - - - - ///------------------ type StatefulView<'arg, 'model, 'msg, 'marker when 'msg: equality> = { Init: 'arg -> 'model diff --git a/src/Fabulous/Builders.fs b/src/Fabulous/Builders.fs index e14a7da07..7a4e438d8 100644 --- a/src/Fabulous/Builders.fs +++ b/src/Fabulous/Builders.fs @@ -241,6 +241,14 @@ type CollectionBuilder<'msg, 'marker, 'itemMarker when 'msg: equality> = res + member inline _.YieldFrom(sequence: WidgetBuilder<'msg, 'itemMarker> seq) : Content<'msg> = + // TODO optimize this one with addMut + { Widgets = + sequence + |> Seq.map(fun wb -> wb.Compile()) + |> Seq.toArray + |> MutStackArray1.fromArray } + [] member inline x.AddScalar(attr: ScalarAttribute) = let struct (scalarAttributes, widgetAttributes, widgetCollectionAttributes, environmentAttributes) =