diff --git a/Sources/SwiftCrossUI/Builders/SceneBuilder.swift b/Sources/SwiftCrossUI/Builders/SceneBuilder.swift index 206eb07aca..ee690388e7 100644 --- a/Sources/SwiftCrossUI/Builders/SceneBuilder.swift +++ b/Sources/SwiftCrossUI/Builders/SceneBuilder.swift @@ -1,3 +1,6 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// SceneBuilder.swift.gyb instead. + /// Builds an app's root scene by composing other scenes together. @resultBuilder public struct SceneBuilder { @@ -6,291 +9,258 @@ public struct SceneBuilder { return content } + public static func buildBlock(_ scene0: Scene0, _ scene1: Scene1) + -> TupleScene2 + { + return TupleScene2(scene0, scene1) + } + + public static func buildBlock( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2 + ) -> TupleScene3 { + return TupleScene3(scene0, scene1, scene2) + } + + public static func buildBlock( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3 + ) -> TupleScene4 { + return TupleScene4(scene0, scene1, scene2, scene3) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene + >(_ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4) + -> TupleScene5 + { + return TupleScene5(scene0, scene1, scene2, scene3, scene4) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene + >( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5 + ) -> TupleScene6 { + return TupleScene6(scene0, scene1, scene2, scene3, scene4, scene5) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene + >( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6 + ) -> TupleScene7 { + return TupleScene7(scene0, scene1, scene2, scene3, scene4, scene5, scene6) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene + >( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7 + ) -> TupleScene8 { + return TupleScene8(scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene + >( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8 + ) -> TupleScene9 { + return TupleScene9(scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8) + } + public static func buildBlock< - Scene0: Scene, - Scene1: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene >( - _ scene0: Scene0, - _ scene1: Scene1 - ) -> TupleScene2< - Scene0, - Scene1 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9 + ) -> TupleScene10< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9 > { - return TupleScene2( - scene0, - scene1 - ) + return TupleScene10( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2 - ) -> TupleScene3< - Scene0, - Scene1, - Scene2 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10 + ) -> TupleScene11< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10 > { - return TupleScene3( - scene0, - scene1, - scene2 - ) + return TupleScene11( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3 - ) -> TupleScene4< - Scene0, - Scene1, - Scene2, - Scene3 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11 + ) -> TupleScene12< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11 > { - return TupleScene4( - scene0, - scene1, - scene2, - scene3 - ) + return TupleScene12( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4 - ) -> TupleScene5< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12 + ) -> TupleScene13< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12 > { - return TupleScene5( - scene0, - scene1, - scene2, - scene3, - scene4 - ) + return TupleScene13( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5 - ) -> TupleScene6< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13 + ) -> TupleScene14< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13 > { - return TupleScene6( - scene0, - scene1, - scene2, - scene3, - scene4, - scene5 - ) + return TupleScene14( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6 - ) -> TupleScene7< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14 + ) -> TupleScene15< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14 > { - return TupleScene7( - scene0, - scene1, - scene2, - scene3, - scene4, - scene5, - scene6 - ) + return TupleScene15( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13, scene14) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6, - _ scene7: Scene7 - ) -> TupleScene8< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15 + ) -> TupleScene16< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15 > { - return TupleScene8( - scene0, - scene1, - scene2, - scene3, - scene4, - scene5, - scene6, - scene7 - ) + return TupleScene16( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13, scene14, scene15) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene, - Scene8: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6, - _ scene7: Scene7, - _ scene8: Scene8 - ) -> TupleScene9< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7, - Scene8 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16 + ) -> TupleScene17< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16 > { - return TupleScene9( - scene0, - scene1, - scene2, - scene3, - scene4, - scene5, - scene6, - scene7, - scene8 - ) + return TupleScene17( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13, scene14, scene15, scene16) } public static func buildBlock< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene, - Scene8: Scene, - Scene9: Scene + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, + Scene17: Scene >( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6, - _ scene7: Scene7, - _ scene8: Scene8, - _ scene9: Scene9 - ) -> TupleScene10< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7, - Scene8, - Scene9 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16, _ scene17: Scene17 + ) -> TupleScene18< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17 > { - return TupleScene10( - scene0, - scene1, - scene2, - scene3, - scene4, - scene5, - scene6, - scene7, - scene8, - scene9 - ) + return TupleScene18( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13, scene14, scene15, scene16, scene17) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, + Scene17: Scene, Scene18: Scene + >( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16, _ scene17: Scene17, + _ scene18: Scene18 + ) -> TupleScene19< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17, Scene18 + > { + return TupleScene19( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13, scene14, scene15, scene16, scene17, scene18) + } + + public static func buildBlock< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, + Scene17: Scene, Scene18: Scene, Scene19: Scene + >( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16, _ scene17: Scene17, + _ scene18: Scene18, _ scene19: Scene19 + ) -> TupleScene20< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17, Scene18, Scene19 + > { + return TupleScene20( + scene0, scene1, scene2, scene3, scene4, scene5, scene6, scene7, scene8, scene9, scene10, + scene11, scene12, scene13, scene14, scene15, scene16, scene17, scene18, scene19) } } diff --git a/Sources/SwiftCrossUI/Builders/SceneBuilder.swift.gyb b/Sources/SwiftCrossUI/Builders/SceneBuilder.swift.gyb index 476339e889..706bfd28c4 100644 --- a/Sources/SwiftCrossUI/Builders/SceneBuilder.swift.gyb +++ b/Sources/SwiftCrossUI/Builders/SceneBuilder.swift.gyb @@ -1,5 +1,7 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// SceneBuilder.swift.gyb instead. %{ -maximum_scene_count = 10 +maximum_scene_count = 20 }% /// Builds an app's root scene by composing other scenes together. @@ -11,16 +13,8 @@ public struct SceneBuilder { } %for i in range(2, maximum_scene_count + 1): - public static func buildBlock< - ${",\n ".join("Scene%d: Scene" % j for j in range(i))} - >( - ${",\n ".join("_ scene%d: Scene%d" % (j, j) for j in range(i))} - ) -> TupleScene${i}< - ${",\n ".join("Scene%d" % j for j in range(i))} - > { - return TupleScene${i}( - ${",\n ".join("scene%d" % j for j in range(i))} - ) + public static func buildBlock<${", ".join("Scene%d: Scene" % j for j in range(i))}>(${", ".join("_ scene%d: Scene%d" % (j, j) for j in range(i))}) -> TupleScene${i}<${", ".join("Scene%d" % j for j in range(i))}> { + return TupleScene${i}(${", ".join("scene%d" % j for j in range(i))}) } %end } diff --git a/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift b/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift index b7e5ef1c61..2db59f9fb2 100644 --- a/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift +++ b/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift @@ -1,3 +1,6 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TableRowBuilder.swift.gyb instead. + /// A result builder for constructing a collection of table columns. @resultBuilder public struct TableRowBuilder { @@ -10,299 +13,367 @@ public struct TableRowBuilder { >( _ column0: TableColumn ) -> TupleTableRowContent1< - RowValue, - Content0 + RowValue, Content0 > { TupleTableRowContent1( column0 ) } public static func buildBlock< - Content0: View, - Content1: View + Content0: View, Content1: View >( - _ column0: TableColumn, - _ column1: TableColumn + _ column0: TableColumn, _ column1: TableColumn ) -> TupleTableRowContent2< - RowValue, - Content0, - Content1 + RowValue, Content0, Content1 > { TupleTableRowContent2( - column0, - column1 + column0, column1 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View + Content0: View, Content1: View, Content2: View >( - _ column0: TableColumn, - _ column1: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, _ column2: TableColumn ) -> TupleTableRowContent3< - RowValue, - Content0, - Content1, - Content2 + RowValue, Content0, Content1, Content2 > { TupleTableRowContent3( - column0, - column1, - column2 + column0, column1, column2 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View + Content0: View, Content1: View, Content2: View, Content3: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn ) -> TupleTableRowContent4< - RowValue, - Content0, - Content1, - Content2, - Content3 + RowValue, Content0, Content1, Content2, Content3 > { TupleTableRowContent4( - column0, - column1, - column2, - column3 + column0, column1, column2, column3 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, _ column4: TableColumn ) -> TupleTableRowContent5< - RowValue, - Content0, - Content1, - Content2, - Content3, - Content4 + RowValue, Content0, Content1, Content2, Content3, Content4 > { TupleTableRowContent5( - column0, - column1, - column2, - column3, - column4 + column0, column1, column2, column3, column4 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, Content5: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn ) -> TupleTableRowContent6< - RowValue, - Content0, - Content1, - Content2, - Content3, - Content4, - Content5 + RowValue, Content0, Content1, Content2, Content3, Content4, Content5 > { TupleTableRowContent6( - column0, - column1, - column2, - column3, - column4, - column5 + column0, column1, column2, column3, column4, column5 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, _ column6: TableColumn ) -> TupleTableRowContent7< - RowValue, - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6 + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6 > { TupleTableRowContent7( - column0, - column1, - column2, - column3, - column4, - column5, - column6 + column0, column1, column2, column3, column4, column5, column6 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View, - Content7: View + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, - _ column6: TableColumn, - _ column7: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn ) -> TupleTableRowContent8< - RowValue, - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6, - Content7 + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7 > { TupleTableRowContent8( - column0, - column1, - column2, - column3, - column4, - column5, - column6, - column7 + column0, column1, column2, column3, column4, column5, column6, column7 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View, - Content7: View, - Content8: View + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, - _ column6: TableColumn, - _ column7: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, _ column8: TableColumn ) -> TupleTableRowContent9< - RowValue, - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6, - Content7, + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8 > { TupleTableRowContent9( - column0, - column1, - column2, - column3, - column4, - column5, - column6, - column7, - column8 + column0, column1, column2, column3, column4, column5, column6, column7, column8 ) } public static func buildBlock< - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View, - Content7: View, - Content8: View, - Content9: View + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View >( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, - _ column6: TableColumn, - _ column7: TableColumn, - _ column8: TableColumn, - _ column9: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn ) -> TupleTableRowContent10< - RowValue, - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6, - Content7, - Content8, - Content9 + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9 > { TupleTableRowContent10( - column0, - column1, - column2, - column3, - column4, - column5, - column6, - column7, - column8, - column9 + column0, column1, column2, column3, column4, column5, column6, column7, column8, column9 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn + ) -> TupleTableRowContent11< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10 + > { + TupleTableRowContent11( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn + ) -> TupleTableRowContent12< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11 + > { + TupleTableRowContent12( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn + ) -> TupleTableRowContent13< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12 + > { + TupleTableRowContent13( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn + ) -> TupleTableRowContent14< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13 + > { + TupleTableRowContent14( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View, Content14: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn + ) -> TupleTableRowContent15< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13, Content14 + > { + TupleTableRowContent15( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13, column14 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View, Content14: View, + Content15: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn + ) -> TupleTableRowContent16< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13, Content14, Content15 + > { + TupleTableRowContent16( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13, column14, column15 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View, Content14: View, + Content15: View, Content16: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn + ) -> TupleTableRowContent17< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13, Content14, Content15, + Content16 + > { + TupleTableRowContent17( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13, column14, column15, column16 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View, Content14: View, + Content15: View, Content16: View, Content17: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn, _ column17: TableColumn + ) -> TupleTableRowContent18< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13, Content14, Content15, + Content16, Content17 + > { + TupleTableRowContent18( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13, column14, column15, column16, column17 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View, Content14: View, + Content15: View, Content16: View, Content17: View, Content18: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn, _ column17: TableColumn, + _ column18: TableColumn + ) -> TupleTableRowContent19< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13, Content14, Content15, + Content16, Content17, Content18 + > { + TupleTableRowContent19( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13, column14, column15, column16, column17, + column18 + ) + } + public static func buildBlock< + Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, + Content10: View, Content11: View, Content12: View, Content13: View, Content14: View, + Content15: View, Content16: View, Content17: View, Content18: View, Content19: View + >( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn, _ column17: TableColumn, + _ column18: TableColumn, _ column19: TableColumn + ) -> TupleTableRowContent20< + RowValue, Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, + Content8, Content9, Content10, Content11, Content12, Content13, Content14, Content15, + Content16, Content17, Content18, Content19 + > { + TupleTableRowContent20( + column0, column1, column2, column3, column4, column5, column6, column7, column8, + column9, column10, column11, column12, column13, column14, column15, column16, column17, + column18, column19 ) } } diff --git a/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift.gyb b/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift.gyb index 9591f86b7c..f47814a32c 100644 --- a/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift.gyb +++ b/Sources/SwiftCrossUI/Builders/TableRowBuilder.swift.gyb @@ -1,5 +1,7 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TableRowBuilder.swift.gyb instead. %{ -maximum_column_count = 10 +maximum_column_count = 20 }% /// A result builder for constructing a collection of table columns. @@ -11,15 +13,14 @@ public struct TableRowBuilder { %for i in range(1, maximum_column_count + 1): public static func buildBlock< - ${",\n ".join("Content%d: View" % j for j in range(i))} + ${", ".join("Content%d: View" % j for j in range(i))} >( - ${",\n ".join("_ column%d: TableColumn" % (j, j) for j in range(i))} + ${", ".join("_ column%d: TableColumn" % (j, j) for j in range(i))} ) -> TupleTableRowContent${i}< - RowValue, - ${",\n ".join("Content%d" % j for j in range(i))} + RowValue, ${", ".join("Content%d" % j for j in range(i))} > { TupleTableRowContent${i}( - ${",\n ".join("column%d" % j for j in range(i))} + ${", ".join("column%d" % j for j in range(i))} ) } %end diff --git a/Sources/SwiftCrossUI/Builders/ViewBuilder.swift b/Sources/SwiftCrossUI/Builders/ViewBuilder.swift index c533325a28..2b5252d367 100644 --- a/Sources/SwiftCrossUI/Builders/ViewBuilder.swift +++ b/Sources/SwiftCrossUI/Builders/ViewBuilder.swift @@ -1,3 +1,6 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// ViewBuilder.swift.gyb instead. + /// A result builder used to compose views together into composite views in /// a declarative manner. @resultBuilder @@ -80,6 +83,148 @@ public struct ViewBuilder { view0, view1, view2, view3, view4, view5, view6, view7, view8, view9) } + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10 + ) -> TupleView11 { + return TupleView11( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11 + ) -> TupleView12 { + return TupleView12( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12 + ) -> TupleView13 { + return TupleView13( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13 + ) -> TupleView14 { + return TupleView14( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View, V14: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13, _ view14: V14 + ) -> TupleView15 { + return TupleView15( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View, V14: View, V15: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13, _ view14: V14, _ view15: V15 + ) -> TupleView16 { + return TupleView16( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View, V14: View, V15: View, V16: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13, _ view14: V14, _ view15: V15, _ view16: V16 + ) -> TupleView17 { + return TupleView17< + V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16 + >( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View, V14: View, V15: View, V16: View, + V17: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13, _ view14: V14, _ view15: V15, _ view16: V16, _ view17: V17 + ) -> TupleView18 + { + return TupleView18< + V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17 + >( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, view17) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View, V14: View, V15: View, V16: View, + V17: View, V18: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13, _ view14: V14, _ view15: V15, _ view16: V16, _ view17: V17, _ view18: V18 + ) -> TupleView19< + V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18 + > { + return TupleView19< + V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18 + >( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, view17, view18) + } + + public static func buildBlock< + V0: View, V1: View, V2: View, V3: View, V4: View, V5: View, V6: View, V7: View, V8: View, + V9: View, V10: View, V11: View, V12: View, V13: View, V14: View, V15: View, V16: View, + V17: View, V18: View, V19: View + >( + _ view0: V0, _ view1: V1, _ view2: V2, _ view3: V3, _ view4: V4, _ view5: V5, _ view6: V6, + _ view7: V7, _ view8: V8, _ view9: V9, _ view10: V10, _ view11: V11, _ view12: V12, + _ view13: V13, _ view14: V14, _ view15: V15, _ view16: V16, _ view17: V17, _ view18: V18, + _ view19: V19 + ) -> TupleView20< + V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19 + > { + return TupleView20< + V0, V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19 + >( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, view17, view18, view19) + } + public static func buildEither(first component: A) -> EitherView { return EitherView(component) } diff --git a/Sources/SwiftCrossUI/Builders/ViewBuilder.swift.gyb b/Sources/SwiftCrossUI/Builders/ViewBuilder.swift.gyb index bf018fdc28..d30912de14 100644 --- a/Sources/SwiftCrossUI/Builders/ViewBuilder.swift.gyb +++ b/Sources/SwiftCrossUI/Builders/ViewBuilder.swift.gyb @@ -1,5 +1,7 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// ViewBuilder.swift.gyb instead. %{ -maximum_view_count = 10 +maximum_view_count = 20 }% /// A result builder used to compose views together into composite views in diff --git a/Sources/SwiftCrossUI/Layout/LayoutSystem.swift b/Sources/SwiftCrossUI/Layout/LayoutSystem.swift index 057ba873bc..4618efff1e 100644 --- a/Sources/SwiftCrossUI/Layout/LayoutSystem.swift +++ b/Sources/SwiftCrossUI/Layout/LayoutSystem.swift @@ -46,7 +46,7 @@ public enum LayoutSystem { public struct LayoutableChild { private var update: - ( + @MainActor ( _ proposedSize: SIMD2, _ environment: EnvironmentValues, _ dryRun: Bool @@ -54,13 +54,14 @@ public enum LayoutSystem { var tag: String? public init( - update: @escaping (SIMD2, EnvironmentValues, Bool) -> ViewUpdateResult, + update: @escaping @MainActor (SIMD2, EnvironmentValues, Bool) -> ViewUpdateResult, tag: String? = nil ) { self.update = update self.tag = tag } + @MainActor public func update( proposedSize: SIMD2, environment: EnvironmentValues, diff --git a/Sources/SwiftCrossUI/Scenes/TupleScene.swift b/Sources/SwiftCrossUI/Scenes/TupleScene.swift index 730c4f7944..e5301fc3ba 100644 --- a/Sources/SwiftCrossUI/Scenes/TupleScene.swift +++ b/Sources/SwiftCrossUI/Scenes/TupleScene.swift @@ -1,41 +1,852 @@ -public struct TupleScene2< - Scene0: Scene, - Scene1: Scene +// This file was generated using gyb. Do not edit it directly. Edit +// TupleScene.swift.gyb instead. + +public struct TupleScene2: Scene { + public typealias Node = TupleSceneNode2 + + var scene0: Scene0 + var scene1: Scene1 + + public var commands: Commands + + public init(_ scene0: Scene0, _ scene1: Scene1) { + self.scene0 = scene0 + self.scene1 = scene1 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + } +} + +public final class TupleSceneNode2: SceneGraphNode { + public typealias NodeScene = TupleScene2 + + var node0: Scene0.Node + var node1: Scene1.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + } +} +public struct TupleScene3: Scene { + public typealias Node = TupleSceneNode3 + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + + public var commands: Commands + + public init(_ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + } +} + +public final class TupleSceneNode3: SceneGraphNode { + public typealias NodeScene = TupleScene3 + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + } +} +public struct TupleScene4: Scene { + public typealias Node = TupleSceneNode4 + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + + public var commands: Commands + + public init(_ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + } +} + +public final class TupleSceneNode4: + SceneGraphNode +{ + public typealias NodeScene = TupleScene4 + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + } +} +public struct TupleScene5< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene +>: Scene { + public typealias Node = TupleSceneNode5 + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + } +} + +public final class TupleSceneNode5< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene5 + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + } +} +public struct TupleScene6< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene +>: Scene { + public typealias Node = TupleSceneNode6 + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + } +} + +public final class TupleSceneNode6< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene6 + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + } +} +public struct TupleScene7< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene +>: Scene { + public typealias Node = TupleSceneNode7 + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + } +} + +public final class TupleSceneNode7< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene7 + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + } +} +public struct TupleScene8< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene +>: Scene { + public typealias Node = TupleSceneNode8< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7 + > + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + } +} + +public final class TupleSceneNode8< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene8< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7 + > + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + } +} +public struct TupleScene9< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene +>: Scene { + public typealias Node = TupleSceneNode9< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8 + > + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + } +} + +public final class TupleSceneNode9< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene9< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8 + > + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + } +} +public struct TupleScene10< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene +>: Scene { + public typealias Node = TupleSceneNode10< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9 + > + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + } +} + +public final class TupleSceneNode10< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene10< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9 + > + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + } +} +public struct TupleScene11< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene +>: Scene { + public typealias Node = TupleSceneNode11< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10 + > + + var scene0: Scene0 + var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + + public var commands: Commands + + public init( + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10 + ) { + self.scene0 = scene0 + self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + + commands = Commands.empty + .overlayed(with: scene0.commands) + .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + } +} + +public final class TupleSceneNode11< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene +>: SceneGraphNode { + public typealias NodeScene = TupleScene11< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10 + > + + var node0: Scene0.Node + var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + + public init( + from scene: NodeScene, + backend: Backend, + environment: EnvironmentValues + ) { + node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) + node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + } + + public func update( + _ newScene: NodeScene?, + backend: Backend, + environment: EnvironmentValues + ) { + node0.update(newScene?.scene0, backend: backend, environment: environment) + node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + } +} +public struct TupleScene12< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene >: Scene { - public typealias Node = TupleSceneNode2< - Scene0, - Scene1 + public typealias Node = TupleSceneNode12< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11 > var scene0: Scene0 var scene1: Scene1 + var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11 ) { self.scene0 = scene0 self.scene1 = scene1 + self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 commands = Commands.empty .overlayed(with: scene0.commands) .overlayed(with: scene1.commands) + .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) } } -public final class TupleSceneNode2< - Scene0: Scene, - Scene1: Scene +public final class TupleSceneNode12< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene2< - Scene0, - Scene1 + public typealias NodeScene = TupleScene12< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11 > var node0: Scene0.Node var node1: Scene1.Node + var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node public init( from scene: NodeScene, @@ -44,6 +855,16 @@ public final class TupleSceneNode2< ) { node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) + node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) } public func update( @@ -53,55 +874,103 @@ public final class TupleSceneNode2< ) { node0.update(newScene?.scene0, backend: backend, environment: environment) node1.update(newScene?.scene1, backend: backend, environment: environment) + node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) } } -public struct TupleScene3< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene +public struct TupleScene13< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene >: Scene { - public typealias Node = TupleSceneNode3< - Scene0, - Scene1, - Scene2 + public typealias Node = TupleSceneNode13< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12 > var scene0: Scene0 var scene1: Scene1 var scene2: Scene2 + var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12 ) { self.scene0 = scene0 self.scene1 = scene1 self.scene2 = scene2 + self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 commands = Commands.empty .overlayed(with: scene0.commands) .overlayed(with: scene1.commands) .overlayed(with: scene2.commands) + .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) } } -public final class TupleSceneNode3< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene +public final class TupleSceneNode13< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene3< - Scene0, - Scene1, - Scene2 + public typealias NodeScene = TupleScene13< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12 > var node0: Scene0.Node var node1: Scene1.Node var node2: Scene2.Node + var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node public init( from scene: NodeScene, @@ -111,6 +980,16 @@ public final class TupleSceneNode3< node0 = Scene0.Node(from: scene.scene0, backend: backend, environment: environment) node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) + node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) } public func update( @@ -121,64 +1000,107 @@ public final class TupleSceneNode3< node0.update(newScene?.scene0, backend: backend, environment: environment) node1.update(newScene?.scene1, backend: backend, environment: environment) node2.update(newScene?.scene2, backend: backend, environment: environment) + node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) } } -public struct TupleScene4< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene +public struct TupleScene14< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene >: Scene { - public typealias Node = TupleSceneNode4< - Scene0, - Scene1, - Scene2, - Scene3 + public typealias Node = TupleSceneNode14< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13 > var scene0: Scene0 var scene1: Scene1 var scene2: Scene2 var scene3: Scene3 + var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13 ) { self.scene0 = scene0 self.scene1 = scene1 self.scene2 = scene2 self.scene3 = scene3 + self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 commands = Commands.empty .overlayed(with: scene0.commands) .overlayed(with: scene1.commands) .overlayed(with: scene2.commands) .overlayed(with: scene3.commands) + .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) } } -public final class TupleSceneNode4< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene +public final class TupleSceneNode14< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene4< - Scene0, - Scene1, - Scene2, - Scene3 + public typealias NodeScene = TupleScene14< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13 > var node0: Scene0.Node var node1: Scene1.Node var node2: Scene2.Node var node3: Scene3.Node + var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node public init( from scene: NodeScene, @@ -189,6 +1111,16 @@ public final class TupleSceneNode4< node1 = Scene1.Node(from: scene.scene1, backend: backend, environment: environment) node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) + node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) } public func update( @@ -200,21 +1132,26 @@ public final class TupleSceneNode4< node1.update(newScene?.scene1, backend: backend, environment: environment) node2.update(newScene?.scene2, backend: backend, environment: environment) node3.update(newScene?.scene3, backend: backend, environment: environment) + node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) } } -public struct TupleScene5< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene +public struct TupleScene15< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene >: Scene { - public typealias Node = TupleSceneNode5< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4 + public typealias Node = TupleSceneNode15< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14 > var scene0: Scene0 @@ -222,21 +1159,40 @@ public struct TupleScene5< var scene2: Scene2 var scene3: Scene3 var scene4: Scene4 + var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 + var scene14: Scene14 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14 ) { self.scene0 = scene0 self.scene1 = scene1 self.scene2 = scene2 self.scene3 = scene3 self.scene4 = scene4 + self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 + self.scene14 = scene14 commands = Commands.empty .overlayed(with: scene0.commands) @@ -244,22 +1200,27 @@ public struct TupleScene5< .overlayed(with: scene2.commands) .overlayed(with: scene3.commands) .overlayed(with: scene4.commands) + .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) + .overlayed(with: scene14.commands) } } -public final class TupleSceneNode5< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene +public final class TupleSceneNode15< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene5< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4 + public typealias NodeScene = TupleScene15< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14 > var node0: Scene0.Node @@ -267,6 +1228,16 @@ public final class TupleSceneNode5< var node2: Scene2.Node var node3: Scene3.Node var node4: Scene4.Node + var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node + var node14: Scene14.Node public init( from scene: NodeScene, @@ -278,6 +1249,16 @@ public final class TupleSceneNode5< node2 = Scene2.Node(from: scene.scene2, backend: backend, environment: environment) node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) + node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) + node14 = Scene14.Node(from: scene.scene14, backend: backend, environment: environment) } public func update( @@ -290,23 +1271,26 @@ public final class TupleSceneNode5< node2.update(newScene?.scene2, backend: backend, environment: environment) node3.update(newScene?.scene3, backend: backend, environment: environment) node4.update(newScene?.scene4, backend: backend, environment: environment) + node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) + node14.update(newScene?.scene14, backend: backend, environment: environment) } } -public struct TupleScene6< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene +public struct TupleScene16< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene >: Scene { - public typealias Node = TupleSceneNode6< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5 + public typealias Node = TupleSceneNode16< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15 > var scene0: Scene0 @@ -315,16 +1299,24 @@ public struct TupleScene6< var scene3: Scene3 var scene4: Scene4 var scene5: Scene5 + var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 + var scene14: Scene14 + var scene15: Scene15 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15 ) { self.scene0 = scene0 self.scene1 = scene1 @@ -332,6 +1324,16 @@ public struct TupleScene6< self.scene3 = scene3 self.scene4 = scene4 self.scene5 = scene5 + self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 + self.scene14 = scene14 + self.scene15 = scene15 commands = Commands.empty .overlayed(with: scene0.commands) @@ -340,24 +1342,27 @@ public struct TupleScene6< .overlayed(with: scene3.commands) .overlayed(with: scene4.commands) .overlayed(with: scene5.commands) + .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) + .overlayed(with: scene14.commands) + .overlayed(with: scene15.commands) } } -public final class TupleSceneNode6< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene +public final class TupleSceneNode16< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene6< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5 + public typealias NodeScene = TupleScene16< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15 > var node0: Scene0.Node @@ -366,6 +1371,16 @@ public final class TupleSceneNode6< var node3: Scene3.Node var node4: Scene4.Node var node5: Scene5.Node + var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node + var node14: Scene14.Node + var node15: Scene15.Node public init( from scene: NodeScene, @@ -378,6 +1393,16 @@ public final class TupleSceneNode6< node3 = Scene3.Node(from: scene.scene3, backend: backend, environment: environment) node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) + node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) + node14 = Scene14.Node(from: scene.scene14, backend: backend, environment: environment) + node15 = Scene15.Node(from: scene.scene15, backend: backend, environment: environment) } public func update( @@ -391,25 +1416,26 @@ public final class TupleSceneNode6< node3.update(newScene?.scene3, backend: backend, environment: environment) node4.update(newScene?.scene4, backend: backend, environment: environment) node5.update(newScene?.scene5, backend: backend, environment: environment) + node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) + node14.update(newScene?.scene14, backend: backend, environment: environment) + node15.update(newScene?.scene15, backend: backend, environment: environment) } } -public struct TupleScene7< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene +public struct TupleScene17< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene >: Scene { - public typealias Node = TupleSceneNode7< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6 + public typealias Node = TupleSceneNode17< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16 > var scene0: Scene0 @@ -419,17 +1445,24 @@ public struct TupleScene7< var scene4: Scene4 var scene5: Scene5 var scene6: Scene6 + var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 + var scene14: Scene14 + var scene15: Scene15 + var scene16: Scene16 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16 ) { self.scene0 = scene0 self.scene1 = scene1 @@ -438,6 +1471,16 @@ public struct TupleScene7< self.scene4 = scene4 self.scene5 = scene5 self.scene6 = scene6 + self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 + self.scene14 = scene14 + self.scene15 = scene15 + self.scene16 = scene16 commands = Commands.empty .overlayed(with: scene0.commands) @@ -447,26 +1490,27 @@ public struct TupleScene7< .overlayed(with: scene4.commands) .overlayed(with: scene5.commands) .overlayed(with: scene6.commands) + .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) + .overlayed(with: scene14.commands) + .overlayed(with: scene15.commands) + .overlayed(with: scene16.commands) } } -public final class TupleSceneNode7< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene +public final class TupleSceneNode17< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene7< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6 + public typealias NodeScene = TupleScene17< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16 > var node0: Scene0.Node @@ -476,6 +1520,16 @@ public final class TupleSceneNode7< var node4: Scene4.Node var node5: Scene5.Node var node6: Scene6.Node + var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node + var node14: Scene14.Node + var node15: Scene15.Node + var node16: Scene16.Node public init( from scene: NodeScene, @@ -489,6 +1543,16 @@ public final class TupleSceneNode7< node4 = Scene4.Node(from: scene.scene4, backend: backend, environment: environment) node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) + node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) + node14 = Scene14.Node(from: scene.scene14, backend: backend, environment: environment) + node15 = Scene15.Node(from: scene.scene15, backend: backend, environment: environment) + node16 = Scene16.Node(from: scene.scene16, backend: backend, environment: environment) } public func update( @@ -503,27 +1567,26 @@ public final class TupleSceneNode7< node4.update(newScene?.scene4, backend: backend, environment: environment) node5.update(newScene?.scene5, backend: backend, environment: environment) node6.update(newScene?.scene6, backend: backend, environment: environment) + node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) + node14.update(newScene?.scene14, backend: backend, environment: environment) + node15.update(newScene?.scene15, backend: backend, environment: environment) + node16.update(newScene?.scene16, backend: backend, environment: environment) } } -public struct TupleScene8< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene +public struct TupleScene18< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, Scene17: Scene >: Scene { - public typealias Node = TupleSceneNode8< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7 + public typealias Node = TupleSceneNode18< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17 > var scene0: Scene0 @@ -534,18 +1597,24 @@ public struct TupleScene8< var scene5: Scene5 var scene6: Scene6 var scene7: Scene7 + var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 + var scene14: Scene14 + var scene15: Scene15 + var scene16: Scene16 + var scene17: Scene17 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6, - _ scene7: Scene7 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16, _ scene17: Scene17 ) { self.scene0 = scene0 self.scene1 = scene1 @@ -555,6 +1624,16 @@ public struct TupleScene8< self.scene5 = scene5 self.scene6 = scene6 self.scene7 = scene7 + self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 + self.scene14 = scene14 + self.scene15 = scene15 + self.scene16 = scene16 + self.scene17 = scene17 commands = Commands.empty .overlayed(with: scene0.commands) @@ -565,28 +1644,27 @@ public struct TupleScene8< .overlayed(with: scene5.commands) .overlayed(with: scene6.commands) .overlayed(with: scene7.commands) + .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) + .overlayed(with: scene14.commands) + .overlayed(with: scene15.commands) + .overlayed(with: scene16.commands) + .overlayed(with: scene17.commands) } } -public final class TupleSceneNode8< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene +public final class TupleSceneNode18< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, Scene17: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene8< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7 + public typealias NodeScene = TupleScene18< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17 > var node0: Scene0.Node @@ -597,6 +1675,16 @@ public final class TupleSceneNode8< var node5: Scene5.Node var node6: Scene6.Node var node7: Scene7.Node + var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node + var node14: Scene14.Node + var node15: Scene15.Node + var node16: Scene16.Node + var node17: Scene17.Node public init( from scene: NodeScene, @@ -611,6 +1699,16 @@ public final class TupleSceneNode8< node5 = Scene5.Node(from: scene.scene5, backend: backend, environment: environment) node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) + node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) + node14 = Scene14.Node(from: scene.scene14, backend: backend, environment: environment) + node15 = Scene15.Node(from: scene.scene15, backend: backend, environment: environment) + node16 = Scene16.Node(from: scene.scene16, backend: backend, environment: environment) + node17 = Scene17.Node(from: scene.scene17, backend: backend, environment: environment) } public func update( @@ -626,29 +1724,27 @@ public final class TupleSceneNode8< node5.update(newScene?.scene5, backend: backend, environment: environment) node6.update(newScene?.scene6, backend: backend, environment: environment) node7.update(newScene?.scene7, backend: backend, environment: environment) + node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) + node14.update(newScene?.scene14, backend: backend, environment: environment) + node15.update(newScene?.scene15, backend: backend, environment: environment) + node16.update(newScene?.scene16, backend: backend, environment: environment) + node17.update(newScene?.scene17, backend: backend, environment: environment) } } -public struct TupleScene9< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene, - Scene8: Scene +public struct TupleScene19< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, Scene17: Scene, + Scene18: Scene >: Scene { - public typealias Node = TupleSceneNode9< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7, - Scene8 + public typealias Node = TupleSceneNode19< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17, Scene18 > var scene0: Scene0 @@ -660,19 +1756,25 @@ public struct TupleScene9< var scene6: Scene6 var scene7: Scene7 var scene8: Scene8 + var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 + var scene14: Scene14 + var scene15: Scene15 + var scene16: Scene16 + var scene17: Scene17 + var scene18: Scene18 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6, - _ scene7: Scene7, - _ scene8: Scene8 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16, _ scene17: Scene17, + _ scene18: Scene18 ) { self.scene0 = scene0 self.scene1 = scene1 @@ -683,6 +1785,16 @@ public struct TupleScene9< self.scene6 = scene6 self.scene7 = scene7 self.scene8 = scene8 + self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 + self.scene14 = scene14 + self.scene15 = scene15 + self.scene16 = scene16 + self.scene17 = scene17 + self.scene18 = scene18 commands = Commands.empty .overlayed(with: scene0.commands) @@ -694,30 +1806,28 @@ public struct TupleScene9< .overlayed(with: scene6.commands) .overlayed(with: scene7.commands) .overlayed(with: scene8.commands) + .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) + .overlayed(with: scene14.commands) + .overlayed(with: scene15.commands) + .overlayed(with: scene16.commands) + .overlayed(with: scene17.commands) + .overlayed(with: scene18.commands) } } -public final class TupleSceneNode9< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene, - Scene8: Scene +public final class TupleSceneNode19< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, Scene17: Scene, + Scene18: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene9< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7, - Scene8 + public typealias NodeScene = TupleScene19< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17, Scene18 > var node0: Scene0.Node @@ -729,6 +1839,16 @@ public final class TupleSceneNode9< var node6: Scene6.Node var node7: Scene7.Node var node8: Scene8.Node + var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node + var node14: Scene14.Node + var node15: Scene15.Node + var node16: Scene16.Node + var node17: Scene17.Node + var node18: Scene18.Node public init( from scene: NodeScene, @@ -744,6 +1864,16 @@ public final class TupleSceneNode9< node6 = Scene6.Node(from: scene.scene6, backend: backend, environment: environment) node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) + node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) + node14 = Scene14.Node(from: scene.scene14, backend: backend, environment: environment) + node15 = Scene15.Node(from: scene.scene15, backend: backend, environment: environment) + node16 = Scene16.Node(from: scene.scene16, backend: backend, environment: environment) + node17 = Scene17.Node(from: scene.scene17, backend: backend, environment: environment) + node18 = Scene18.Node(from: scene.scene18, backend: backend, environment: environment) } public func update( @@ -760,31 +1890,27 @@ public final class TupleSceneNode9< node6.update(newScene?.scene6, backend: backend, environment: environment) node7.update(newScene?.scene7, backend: backend, environment: environment) node8.update(newScene?.scene8, backend: backend, environment: environment) + node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) + node14.update(newScene?.scene14, backend: backend, environment: environment) + node15.update(newScene?.scene15, backend: backend, environment: environment) + node16.update(newScene?.scene16, backend: backend, environment: environment) + node17.update(newScene?.scene17, backend: backend, environment: environment) + node18.update(newScene?.scene18, backend: backend, environment: environment) } } -public struct TupleScene10< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene, - Scene8: Scene, - Scene9: Scene +public struct TupleScene20< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, Scene17: Scene, + Scene18: Scene, Scene19: Scene >: Scene { - public typealias Node = TupleSceneNode10< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7, - Scene8, - Scene9 + public typealias Node = TupleSceneNode20< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17, Scene18, Scene19 > var scene0: Scene0 @@ -797,20 +1923,25 @@ public struct TupleScene10< var scene7: Scene7 var scene8: Scene8 var scene9: Scene9 + var scene10: Scene10 + var scene11: Scene11 + var scene12: Scene12 + var scene13: Scene13 + var scene14: Scene14 + var scene15: Scene15 + var scene16: Scene16 + var scene17: Scene17 + var scene18: Scene18 + var scene19: Scene19 public var commands: Commands public init( - _ scene0: Scene0, - _ scene1: Scene1, - _ scene2: Scene2, - _ scene3: Scene3, - _ scene4: Scene4, - _ scene5: Scene5, - _ scene6: Scene6, - _ scene7: Scene7, - _ scene8: Scene8, - _ scene9: Scene9 + _ scene0: Scene0, _ scene1: Scene1, _ scene2: Scene2, _ scene3: Scene3, _ scene4: Scene4, + _ scene5: Scene5, _ scene6: Scene6, _ scene7: Scene7, _ scene8: Scene8, _ scene9: Scene9, + _ scene10: Scene10, _ scene11: Scene11, _ scene12: Scene12, _ scene13: Scene13, + _ scene14: Scene14, _ scene15: Scene15, _ scene16: Scene16, _ scene17: Scene17, + _ scene18: Scene18, _ scene19: Scene19 ) { self.scene0 = scene0 self.scene1 = scene1 @@ -822,6 +1953,16 @@ public struct TupleScene10< self.scene7 = scene7 self.scene8 = scene8 self.scene9 = scene9 + self.scene10 = scene10 + self.scene11 = scene11 + self.scene12 = scene12 + self.scene13 = scene13 + self.scene14 = scene14 + self.scene15 = scene15 + self.scene16 = scene16 + self.scene17 = scene17 + self.scene18 = scene18 + self.scene19 = scene19 commands = Commands.empty .overlayed(with: scene0.commands) @@ -834,32 +1975,28 @@ public struct TupleScene10< .overlayed(with: scene7.commands) .overlayed(with: scene8.commands) .overlayed(with: scene9.commands) + .overlayed(with: scene10.commands) + .overlayed(with: scene11.commands) + .overlayed(with: scene12.commands) + .overlayed(with: scene13.commands) + .overlayed(with: scene14.commands) + .overlayed(with: scene15.commands) + .overlayed(with: scene16.commands) + .overlayed(with: scene17.commands) + .overlayed(with: scene18.commands) + .overlayed(with: scene19.commands) } } -public final class TupleSceneNode10< - Scene0: Scene, - Scene1: Scene, - Scene2: Scene, - Scene3: Scene, - Scene4: Scene, - Scene5: Scene, - Scene6: Scene, - Scene7: Scene, - Scene8: Scene, - Scene9: Scene +public final class TupleSceneNode20< + Scene0: Scene, Scene1: Scene, Scene2: Scene, Scene3: Scene, Scene4: Scene, Scene5: Scene, + Scene6: Scene, Scene7: Scene, Scene8: Scene, Scene9: Scene, Scene10: Scene, Scene11: Scene, + Scene12: Scene, Scene13: Scene, Scene14: Scene, Scene15: Scene, Scene16: Scene, Scene17: Scene, + Scene18: Scene, Scene19: Scene >: SceneGraphNode { - public typealias NodeScene = TupleScene10< - Scene0, - Scene1, - Scene2, - Scene3, - Scene4, - Scene5, - Scene6, - Scene7, - Scene8, - Scene9 + public typealias NodeScene = TupleScene20< + Scene0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8, Scene9, Scene10, + Scene11, Scene12, Scene13, Scene14, Scene15, Scene16, Scene17, Scene18, Scene19 > var node0: Scene0.Node @@ -872,6 +2009,16 @@ public final class TupleSceneNode10< var node7: Scene7.Node var node8: Scene8.Node var node9: Scene9.Node + var node10: Scene10.Node + var node11: Scene11.Node + var node12: Scene12.Node + var node13: Scene13.Node + var node14: Scene14.Node + var node15: Scene15.Node + var node16: Scene16.Node + var node17: Scene17.Node + var node18: Scene18.Node + var node19: Scene19.Node public init( from scene: NodeScene, @@ -888,6 +2035,16 @@ public final class TupleSceneNode10< node7 = Scene7.Node(from: scene.scene7, backend: backend, environment: environment) node8 = Scene8.Node(from: scene.scene8, backend: backend, environment: environment) node9 = Scene9.Node(from: scene.scene9, backend: backend, environment: environment) + node10 = Scene10.Node(from: scene.scene10, backend: backend, environment: environment) + node11 = Scene11.Node(from: scene.scene11, backend: backend, environment: environment) + node12 = Scene12.Node(from: scene.scene12, backend: backend, environment: environment) + node13 = Scene13.Node(from: scene.scene13, backend: backend, environment: environment) + node14 = Scene14.Node(from: scene.scene14, backend: backend, environment: environment) + node15 = Scene15.Node(from: scene.scene15, backend: backend, environment: environment) + node16 = Scene16.Node(from: scene.scene16, backend: backend, environment: environment) + node17 = Scene17.Node(from: scene.scene17, backend: backend, environment: environment) + node18 = Scene18.Node(from: scene.scene18, backend: backend, environment: environment) + node19 = Scene19.Node(from: scene.scene19, backend: backend, environment: environment) } public func update( @@ -905,5 +2062,15 @@ public final class TupleSceneNode10< node7.update(newScene?.scene7, backend: backend, environment: environment) node8.update(newScene?.scene8, backend: backend, environment: environment) node9.update(newScene?.scene9, backend: backend, environment: environment) + node10.update(newScene?.scene10, backend: backend, environment: environment) + node11.update(newScene?.scene11, backend: backend, environment: environment) + node12.update(newScene?.scene12, backend: backend, environment: environment) + node13.update(newScene?.scene13, backend: backend, environment: environment) + node14.update(newScene?.scene14, backend: backend, environment: environment) + node15.update(newScene?.scene15, backend: backend, environment: environment) + node16.update(newScene?.scene16, backend: backend, environment: environment) + node17.update(newScene?.scene17, backend: backend, environment: environment) + node18.update(newScene?.scene18, backend: backend, environment: environment) + node19.update(newScene?.scene19, backend: backend, environment: environment) } } diff --git a/Sources/SwiftCrossUI/Scenes/TupleScene.swift.gyb b/Sources/SwiftCrossUI/Scenes/TupleScene.swift.gyb index 1ec50ecf39..898dd9971d 100644 --- a/Sources/SwiftCrossUI/Scenes/TupleScene.swift.gyb +++ b/Sources/SwiftCrossUI/Scenes/TupleScene.swift.gyb @@ -1,14 +1,12 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TupleScene.swift.gyb instead. %{ -maximum_scene_count = 10 +maximum_scene_count = 20 }% %for i in range(2, maximum_scene_count + 1): -public struct TupleScene${i}< - ${",\n ".join("Scene%d: Scene" % j for j in range(i))} ->: Scene { - public typealias Node = TupleSceneNode${i}< - ${",\n ".join("Scene%d" % j for j in range(i))} - > +public struct TupleScene${i}<${", ".join("Scene%d: Scene" % j for j in range(i))}>: Scene { + public typealias Node = TupleSceneNode${i}<${", ".join("Scene%d" % j for j in range(i))}> %for j in range(i): var scene${j}: Scene${j} @@ -16,9 +14,7 @@ public struct TupleScene${i}< public var commands: Commands - public init( - ${",\n ".join("_ scene%d: Scene%d" % (j, j) for j in range(i))} - ) { + public init(${", ".join("_ scene%d: Scene%d" % (j, j) for j in range(i))}) { %for j in range(i): self.scene${j} = scene${j} %end @@ -30,12 +26,8 @@ public struct TupleScene${i}< } } -public final class TupleSceneNode${i}< - ${",\n ".join("Scene%d: Scene" % j for j in range(i))} ->: SceneGraphNode { - public typealias NodeScene = TupleScene${i}< - ${",\n ".join("Scene%d" % j for j in range(i))} - > +public final class TupleSceneNode${i}<${", ".join("Scene%d: Scene" % j for j in range(i))}>: SceneGraphNode { + public typealias NodeScene = TupleScene${i}<${", ".join("Scene%d" % j for j in range(i))}> %for j in range(i): var node${j}: Scene${j}.Node diff --git a/Sources/SwiftCrossUI/SwiftCrossUI.docc/Scene graph.md b/Sources/SwiftCrossUI/SwiftCrossUI.docc/Scene graph.md index 348bf14deb..a632441ce5 100644 --- a/Sources/SwiftCrossUI/SwiftCrossUI.docc/Scene graph.md +++ b/Sources/SwiftCrossUI/SwiftCrossUI.docc/Scene graph.md @@ -14,6 +14,16 @@ - ``TupleScene8`` - ``TupleScene9`` - ``TupleScene10`` +- ``TupleScene11`` +- ``TupleScene12`` +- ``TupleScene13`` +- ``TupleScene14`` +- ``TupleScene15`` +- ``TupleScene16`` +- ``TupleScene17`` +- ``TupleScene18`` +- ``TupleScene19`` +- ``TupleScene20`` - ``TupleSceneNode2`` - ``TupleSceneNode3`` - ``TupleSceneNode4`` @@ -23,3 +33,13 @@ - ``TupleSceneNode8`` - ``TupleSceneNode9`` - ``TupleSceneNode10`` +- ``TupleSceneNode11`` +- ``TupleSceneNode12`` +- ``TupleSceneNode13`` +- ``TupleSceneNode14`` +- ``TupleSceneNode15`` +- ``TupleSceneNode16`` +- ``TupleSceneNode17`` +- ``TupleSceneNode18`` +- ``TupleSceneNode19`` +- ``TupleSceneNode20`` diff --git a/Sources/SwiftCrossUI/SwiftCrossUI.docc/Tables.md b/Sources/SwiftCrossUI/SwiftCrossUI.docc/Tables.md index f5a4717785..3f593d8300 100644 --- a/Sources/SwiftCrossUI/SwiftCrossUI.docc/Tables.md +++ b/Sources/SwiftCrossUI/SwiftCrossUI.docc/Tables.md @@ -20,3 +20,13 @@ - ``TupleTableRowContent8`` - ``TupleTableRowContent9`` - ``TupleTableRowContent10`` +- ``TupleTableRowContent11`` +- ``TupleTableRowContent12`` +- ``TupleTableRowContent13`` +- ``TupleTableRowContent14`` +- ``TupleTableRowContent15`` +- ``TupleTableRowContent16`` +- ``TupleTableRowContent17`` +- ``TupleTableRowContent18`` +- ``TupleTableRowContent19`` +- ``TupleTableRowContent20`` diff --git a/Sources/SwiftCrossUI/SwiftCrossUI.docc/View graph.md b/Sources/SwiftCrossUI/SwiftCrossUI.docc/View graph.md index b3af206647..0c97de6268 100644 --- a/Sources/SwiftCrossUI/SwiftCrossUI.docc/View graph.md +++ b/Sources/SwiftCrossUI/SwiftCrossUI.docc/View graph.md @@ -20,6 +20,16 @@ - ``TupleView8`` - ``TupleView9`` - ``TupleView10`` +- ``TupleView11`` +- ``TupleView12`` +- ``TupleView13`` +- ``TupleView14`` +- ``TupleView15`` +- ``TupleView16`` +- ``TupleView17`` +- ``TupleView18`` +- ``TupleView19`` +- ``TupleView20`` - ``TupleViewChildren1`` - ``TupleViewChildren2`` - ``TupleViewChildren3`` @@ -30,3 +40,13 @@ - ``TupleViewChildren8`` - ``TupleViewChildren9`` - ``TupleViewChildren10`` +- ``TupleViewChildren11`` +- ``TupleViewChildren12`` +- ``TupleViewChildren13`` +- ``TupleViewChildren14`` +- ``TupleViewChildren15`` +- ``TupleViewChildren16`` +- ``TupleViewChildren17`` +- ``TupleViewChildren18`` +- ``TupleViewChildren19`` +- ``TupleViewChildren20`` diff --git a/Sources/SwiftCrossUI/Values/TextStyle.swift b/Sources/SwiftCrossUI/Values/TextStyle.swift index 428d88e673..378a596e41 100644 --- a/Sources/SwiftCrossUI/Values/TextStyle.swift +++ b/Sources/SwiftCrossUI/Values/TextStyle.swift @@ -73,7 +73,7 @@ extension Font.TextStyle { .desktop: desktopTextStyles, .phone: mobileTextStyles, .tablet: mobileTextStyles, - .tv: tvTextStyles + .tv: tvTextStyles, ] private static let desktopTextStyles: [Self: Resolved] = [ diff --git a/Sources/SwiftCrossUI/Views/TableRowContent.swift b/Sources/SwiftCrossUI/Views/TableRowContent.swift index 41f836c91f..f76429dcff 100644 --- a/Sources/SwiftCrossUI/Views/TableRowContent.swift +++ b/Sources/SwiftCrossUI/Views/TableRowContent.swift @@ -1,3 +1,6 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TableRowContent.swift.gyb instead. + public protocol TableRowContent { associatedtype RowValue associatedtype RowContent: View @@ -21,98 +24,61 @@ public struct EmptyTableRowContent: TableRowContent { } } -public struct TupleTableRowContent1< - RowValue, - Content0: View ->: TableRowContent { - public typealias RowContent = TupleView1< - Content0 - > +public struct TupleTableRowContent1: TableRowContent { + public typealias RowContent = TupleView1 public var column0: TableColumn public var labels: [String] { - [ - column0.label - ] + [column0.label] } - public init( - _ column0: TableColumn - ) { + public init(_ column0: TableColumn) { self.column0 = column0 } public func content(for row: RowValue) -> RowContent { - TupleView1( - column0.content(row) - ) + TupleView1(column0.content(row)) } } -public struct TupleTableRowContent2< - RowValue, - Content0: View, - Content1: View ->: TableRowContent { - public typealias RowContent = TupleView2< - Content0, - Content1 - > +public struct TupleTableRowContent2: TableRowContent { + public typealias RowContent = TupleView2 public var column0: TableColumn public var column1: TableColumn public var labels: [String] { - [ - column0.label, - column1.label, - ] + [column0.label, column1.label] } public init( - _ column0: TableColumn, - _ column1: TableColumn + _ column0: TableColumn, _ column1: TableColumn ) { self.column0 = column0 self.column1 = column1 } public func content(for row: RowValue) -> RowContent { - TupleView2( - column0.content(row), - column1.content(row) - ) + TupleView2(column0.content(row), column1.content(row)) } } -public struct TupleTableRowContent3< - RowValue, - Content0: View, - Content1: View, - Content2: View ->: TableRowContent { - public typealias RowContent = TupleView3< - Content0, - Content1, - Content2 - > +public struct TupleTableRowContent3: + TableRowContent +{ + public typealias RowContent = TupleView3 public var column0: TableColumn public var column1: TableColumn public var column2: TableColumn public var labels: [String] { - [ - column0.label, - column1.label, - column2.label, - ] + [column0.label, column1.label, column2.label] } public init( - _ column0: TableColumn, - _ column1: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, _ column2: TableColumn ) { self.column0 = column0 @@ -121,27 +87,14 @@ public struct TupleTableRowContent3< } public func content(for row: RowValue) -> RowContent { - TupleView3( - column0.content(row), - column1.content(row), - column2.content(row) - ) + TupleView3(column0.content(row), column1.content(row), column2.content(row)) } } public struct TupleTableRowContent4< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View + RowValue, Content0: View, Content1: View, Content2: View, Content3: View >: TableRowContent { - public typealias RowContent = TupleView4< - Content0, - Content1, - Content2, - Content3 - > + public typealias RowContent = TupleView4 public var column0: TableColumn public var column1: TableColumn @@ -149,19 +102,12 @@ public struct TupleTableRowContent4< public var column3: TableColumn public var labels: [String] { - [ - column0.label, - column1.label, - column2.label, - column3.label, - ] + [column0.label, column1.label, column2.label, column3.label] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn ) { self.column0 = column0 self.column1 = column1 @@ -171,29 +117,14 @@ public struct TupleTableRowContent4< public func content(for row: RowValue) -> RowContent { TupleView4( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row) - ) + column0.content(row), column1.content(row), column2.content(row), column3.content(row)) } } public struct TupleTableRowContent5< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View >: TableRowContent { - public typealias RowContent = TupleView5< - Content0, - Content1, - Content2, - Content3, - Content4 - > + public typealias RowContent = TupleView5 public var column0: TableColumn public var column1: TableColumn @@ -202,20 +133,12 @@ public struct TupleTableRowContent5< public var column4: TableColumn public var labels: [String] { - [ - column0.label, - column1.label, - column2.label, - column3.label, - column4.label, - ] + [column0.label, column1.label, column2.label, column3.label, column4.label] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, _ column4: TableColumn ) { self.column0 = column0 @@ -227,31 +150,17 @@ public struct TupleTableRowContent5< public func content(for row: RowValue) -> RowContent { TupleView5( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row), - column4.content(row) - ) + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row)) } } public struct TupleTableRowContent6< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, Content5: View >: TableRowContent { public typealias RowContent = TupleView6< - Content0, - Content1, - Content2, - Content3, - Content4, - Content5 + Content0, Content1, Content2, Content3, Content4, Content5 > public var column0: TableColumn @@ -262,23 +171,13 @@ public struct TupleTableRowContent6< public var column5: TableColumn public var labels: [String] { - [ - column0.label, - column1.label, - column2.label, - column3.label, - column4.label, - column5.label, - ] + [column0.label, column1.label, column2.label, column3.label, column4.label, column5.label] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn ) { self.column0 = column0 self.column1 = column1 @@ -290,34 +189,17 @@ public struct TupleTableRowContent6< public func content(for row: RowValue) -> RowContent { TupleView6( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row), - column4.content(row), - column5.content(row) - ) + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row)) } } public struct TupleTableRowContent7< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View >: TableRowContent { public typealias RowContent = TupleView7< - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6 + Content0, Content1, Content2, Content3, Content4, Content5, Content6 > public var column0: TableColumn @@ -330,23 +212,15 @@ public struct TupleTableRowContent7< public var labels: [String] { [ - column0.label, - column1.label, - column2.label, - column3.label, - column4.label, - column5.label, - column6.label, + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, ] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, _ column6: TableColumn ) { self.column0 = column0 @@ -360,37 +234,17 @@ public struct TupleTableRowContent7< public func content(for row: RowValue) -> RowContent { TupleView7( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row), - column4.content(row), - column5.content(row), - column6.content(row) - ) + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row)) } } public struct TupleTableRowContent8< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View, - Content7: View + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View >: TableRowContent { public typealias RowContent = TupleView8< - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6, - Content7 + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7 > public var column0: TableColumn @@ -404,26 +258,16 @@ public struct TupleTableRowContent8< public var labels: [String] { [ - column0.label, - column1.label, - column2.label, - column3.label, - column4.label, - column5.label, - column6.label, - column7.label, + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, ] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, - _ column6: TableColumn, - _ column7: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn ) { self.column0 = column0 self.column1 = column1 @@ -437,40 +281,17 @@ public struct TupleTableRowContent8< public func content(for row: RowValue) -> RowContent { TupleView8( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row), - column4.content(row), - column5.content(row), - column6.content(row), - column7.content(row) - ) + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row)) } } public struct TupleTableRowContent9< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View, - Content7: View, - Content8: View + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View >: TableRowContent { public typealias RowContent = TupleView9< - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6, - Content7, - Content8 + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8 > public var column0: TableColumn @@ -485,27 +306,16 @@ public struct TupleTableRowContent9< public var labels: [String] { [ - column0.label, - column1.label, - column2.label, - column3.label, - column4.label, - column5.label, - column6.label, - column7.label, - column8.label, + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, ] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, - _ column6: TableColumn, - _ column7: TableColumn, + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, _ column8: TableColumn ) { self.column0 = column0 @@ -521,42 +331,18 @@ public struct TupleTableRowContent9< public func content(for row: RowValue) -> RowContent { TupleView9( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row), - column4.content(row), - column5.content(row), - column6.content(row), - column7.content(row), - column8.content(row) - ) + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row)) } } public struct TupleTableRowContent10< - RowValue, - Content0: View, - Content1: View, - Content2: View, - Content3: View, - Content4: View, - Content5: View, - Content6: View, - Content7: View, - Content8: View, - Content9: View + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View >: TableRowContent { public typealias RowContent = TupleView10< - Content0, - Content1, - Content2, - Content3, - Content4, - Content5, - Content6, - Content7, - Content8, + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, Content9 > @@ -573,30 +359,17 @@ public struct TupleTableRowContent10< public var labels: [String] { [ - column0.label, - column1.label, - column2.label, - column3.label, - column4.label, - column5.label, - column6.label, - column7.label, - column8.label, - column9.label, + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, ] } public init( - _ column0: TableColumn, - _ column1: TableColumn, - _ column2: TableColumn, - _ column3: TableColumn, - _ column4: TableColumn, - _ column5: TableColumn, - _ column6: TableColumn, - _ column7: TableColumn, - _ column8: TableColumn, - _ column9: TableColumn + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn ) { self.column0 = column0 self.column1 = column1 @@ -612,16 +385,737 @@ public struct TupleTableRowContent10< public func content(for row: RowValue) -> RowContent { TupleView10( - column0.content(row), - column1.content(row), - column2.content(row), - column3.content(row), - column4.content(row), - column5.content(row), - column6.content(row), - column7.content(row), - column8.content(row), - column9.content(row) + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row)) + } +} + +public struct TupleTableRowContent11< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View +>: TableRowContent { + public typealias RowContent = TupleView11< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + } + + public func content(for row: RowValue) -> RowContent { + TupleView11( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row)) + } +} + +public struct TupleTableRowContent12< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View +>: TableRowContent { + public typealias RowContent = TupleView12< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + } + + public func content(for row: RowValue) -> RowContent { + TupleView12( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), column11.content(row) ) } } + +public struct TupleTableRowContent13< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View +>: TableRowContent { + public typealias RowContent = TupleView13< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + } + + public func content(for row: RowValue) -> RowContent { + TupleView13( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row)) + } +} + +public struct TupleTableRowContent14< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View +>: TableRowContent { + public typealias RowContent = TupleView14< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + } + + public func content(for row: RowValue) -> RowContent { + TupleView14( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row)) + } +} + +public struct TupleTableRowContent15< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View, Content14: View +>: TableRowContent { + public typealias RowContent = TupleView15< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13, Content14 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + public var column14: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, column14.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + self.column14 = column14 + } + + public func content(for row: RowValue) -> RowContent { + TupleView15( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row), + column14.content(row)) + } +} + +public struct TupleTableRowContent16< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View, Content14: View, Content15: View +>: TableRowContent { + public typealias RowContent = TupleView16< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13, Content14, Content15 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + public var column14: TableColumn + public var column15: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, column14.label, + column15.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + self.column14 = column14 + self.column15 = column15 + } + + public func content(for row: RowValue) -> RowContent { + TupleView16( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row), + column14.content(row), column15.content(row)) + } +} + +public struct TupleTableRowContent17< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View, Content14: View, Content15: View, + Content16: View +>: TableRowContent { + public typealias RowContent = TupleView17< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13, Content14, Content15, Content16 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + public var column14: TableColumn + public var column15: TableColumn + public var column16: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, column14.label, + column15.label, column16.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + self.column14 = column14 + self.column15 = column15 + self.column16 = column16 + } + + public func content(for row: RowValue) -> RowContent { + TupleView17( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row), + column14.content(row), column15.content(row), column16.content(row)) + } +} + +public struct TupleTableRowContent18< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View, Content14: View, Content15: View, + Content16: View, Content17: View +>: TableRowContent { + public typealias RowContent = TupleView18< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13, Content14, Content15, Content16, + Content17 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + public var column14: TableColumn + public var column15: TableColumn + public var column16: TableColumn + public var column17: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, column14.label, + column15.label, column16.label, column17.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn, _ column17: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + self.column14 = column14 + self.column15 = column15 + self.column16 = column16 + self.column17 = column17 + } + + public func content(for row: RowValue) -> RowContent { + TupleView18( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row), + column14.content(row), column15.content(row), column16.content(row), + column17.content(row)) + } +} + +public struct TupleTableRowContent19< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View, Content14: View, Content15: View, + Content16: View, Content17: View, Content18: View +>: TableRowContent { + public typealias RowContent = TupleView19< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13, Content14, Content15, Content16, + Content17, Content18 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + public var column14: TableColumn + public var column15: TableColumn + public var column16: TableColumn + public var column17: TableColumn + public var column18: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, column14.label, + column15.label, column16.label, column17.label, column18.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn, _ column17: TableColumn, + _ column18: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + self.column14 = column14 + self.column15 = column15 + self.column16 = column16 + self.column17 = column17 + self.column18 = column18 + } + + public func content(for row: RowValue) -> RowContent { + TupleView19( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row), + column14.content(row), column15.content(row), column16.content(row), + column17.content(row), column18.content(row)) + } +} + +public struct TupleTableRowContent20< + RowValue, Content0: View, Content1: View, Content2: View, Content3: View, Content4: View, + Content5: View, Content6: View, Content7: View, Content8: View, Content9: View, Content10: View, + Content11: View, Content12: View, Content13: View, Content14: View, Content15: View, + Content16: View, Content17: View, Content18: View, Content19: View +>: TableRowContent { + public typealias RowContent = TupleView20< + Content0, Content1, Content2, Content3, Content4, Content5, Content6, Content7, Content8, + Content9, Content10, Content11, Content12, Content13, Content14, Content15, Content16, + Content17, Content18, Content19 + > + + public var column0: TableColumn + public var column1: TableColumn + public var column2: TableColumn + public var column3: TableColumn + public var column4: TableColumn + public var column5: TableColumn + public var column6: TableColumn + public var column7: TableColumn + public var column8: TableColumn + public var column9: TableColumn + public var column10: TableColumn + public var column11: TableColumn + public var column12: TableColumn + public var column13: TableColumn + public var column14: TableColumn + public var column15: TableColumn + public var column16: TableColumn + public var column17: TableColumn + public var column18: TableColumn + public var column19: TableColumn + + public var labels: [String] { + [ + column0.label, column1.label, column2.label, column3.label, column4.label, + column5.label, column6.label, column7.label, column8.label, column9.label, + column10.label, column11.label, column12.label, column13.label, column14.label, + column15.label, column16.label, column17.label, column18.label, column19.label, + ] + } + + public init( + _ column0: TableColumn, _ column1: TableColumn, + _ column2: TableColumn, _ column3: TableColumn, + _ column4: TableColumn, _ column5: TableColumn, + _ column6: TableColumn, _ column7: TableColumn, + _ column8: TableColumn, _ column9: TableColumn, + _ column10: TableColumn, _ column11: TableColumn, + _ column12: TableColumn, _ column13: TableColumn, + _ column14: TableColumn, _ column15: TableColumn, + _ column16: TableColumn, _ column17: TableColumn, + _ column18: TableColumn, _ column19: TableColumn + ) { + self.column0 = column0 + self.column1 = column1 + self.column2 = column2 + self.column3 = column3 + self.column4 = column4 + self.column5 = column5 + self.column6 = column6 + self.column7 = column7 + self.column8 = column8 + self.column9 = column9 + self.column10 = column10 + self.column11 = column11 + self.column12 = column12 + self.column13 = column13 + self.column14 = column14 + self.column15 = column15 + self.column16 = column16 + self.column17 = column17 + self.column18 = column18 + self.column19 = column19 + } + + public func content(for row: RowValue) -> RowContent { + TupleView20( + column0.content(row), column1.content(row), column2.content(row), column3.content(row), + column4.content(row), column5.content(row), column6.content(row), column7.content(row), + column8.content(row), column9.content(row), column10.content(row), + column11.content(row), column12.content(row), column13.content(row), + column14.content(row), column15.content(row), column16.content(row), + column17.content(row), column18.content(row), column19.content(row)) + } +} diff --git a/Sources/SwiftCrossUI/Views/TableRowContent.swift.gyb b/Sources/SwiftCrossUI/Views/TableRowContent.swift.gyb index 760c714ad4..aed9494119 100644 --- a/Sources/SwiftCrossUI/Views/TableRowContent.swift.gyb +++ b/Sources/SwiftCrossUI/Views/TableRowContent.swift.gyb @@ -1,5 +1,7 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TableRowContent.swift.gyb instead. %{ -maximum_column_count = 10 +maximum_column_count = 20 }% public protocol TableRowContent { @@ -26,38 +28,25 @@ public struct EmptyTableRowContent: TableRowContent { } %for i in range(1, maximum_column_count + 1): -public struct TupleTableRowContent${i}< - RowValue, - ${",\n ".join("Content%d: View" % j for j in range(i))} ->: TableRowContent { - public typealias RowContent = TupleView${i}< - ${",\n ".join("Content%d" % j for j in range(i))} - > +public struct TupleTableRowContent${i}: TableRowContent { + public typealias RowContent = TupleView${i}<${", ".join("Content%d" % j for j in range(i))}> %for j in range(i): public var column${j}: TableColumn %end public var labels: [String] { - [ - %for j in range(i): - column${j}.label, - %end - ] + [${", ".join("column%d.label" % j for j in range(i))}] } - public init( - ${",\n ".join("_ column%d: TableColumn" % (j, j) for j in range(i))} - ) { + public init(${", ".join("_ column%d: TableColumn" % (j, j) for j in range(i))}) { %for j in range(i): self.column${j} = column${j} %end } public func content(for row: RowValue) -> RowContent { - TupleView${i}( - ${",\n ".join("column%d.content(row)" % j for j in range(i))} - ) + TupleView${i}(${", ".join("column%d.content(row)" % j for j in range(i))}) } } diff --git a/Sources/SwiftCrossUI/Views/TupleView.swift b/Sources/SwiftCrossUI/Views/TupleView.swift index c85e8dd7c7..edd1d644fd 100644 --- a/Sources/SwiftCrossUI/Views/TupleView.swift +++ b/Sources/SwiftCrossUI/Views/TupleView.swift @@ -1,3 +1,59 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TupleView.swift.gyb instead. + +@MainActor +private func layoutableChild( + node: AnyViewGraphNode, + view: V +) -> LayoutSystem.LayoutableChild { + LayoutSystem.LayoutableChild( + update: { proposedSize, environment, dryRun in + node.update( + with: view, + proposedSize: proposedSize, + environment: environment, + dryRun: dryRun + ) + }, + tag: "\(type(of: view))" + ) +} + +/// Just a vessel for some default implementations to compress this generated code. +@MainActor +protocol TupleView: TypeSafeView {} + +extension TupleView { + @MainActor + func asWidget( + _ children: Children, + backend: Backend + ) -> Backend.Widget { + let group = Group(content: self) + return group.asWidget(children, backend: backend) + } + + @MainActor + func update( + _ widget: Backend.Widget, + children: Children, + proposedSize: SIMD2, + environment: EnvironmentValues, + backend: Backend, + dryRun: Bool + ) -> ViewUpdateResult { + let group = Group(content: self) + return group.update( + widget, + children: children, + proposedSize: proposedSize, + environment: environment, + backend: backend, + dryRun: dryRun + ) + } +} + /// A view with exactly 1 children. Autogenerated as an alternative to Swift's not yet /// production ready variadic generics. /// @@ -17,7 +73,7 @@ extension TupleView1: View { public typealias Content = EmptyView } -extension TupleView1: TypeSafeView { +extension TupleView1: TupleView { typealias Children = TupleViewChildren1 func children( @@ -27,9 +83,7 @@ extension TupleView1: TypeSafeView { ) -> Children { return Children( view0, - backend: backend, - snapshots: snapshots, - environment: environment + backend: backend, snapshots: snapshots, environment: environment ) } @@ -37,48 +91,9 @@ extension TupleView1: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0) + ] } } @@ -103,7 +118,7 @@ extension TupleView2: View { public typealias Content = EmptyView } -extension TupleView2: TypeSafeView { +extension TupleView2: TupleView { typealias Children = TupleViewChildren2 func children( @@ -112,11 +127,8 @@ extension TupleView2: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -124,61 +136,10 @@ extension TupleView2: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + ] } } @@ -205,7 +166,7 @@ extension TupleView3: View { public typealias Content = EmptyView } -extension TupleView3: TypeSafeView { +extension TupleView3: TupleView { typealias Children = TupleViewChildren3 func children( @@ -214,12 +175,8 @@ extension TupleView3: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -227,74 +184,11 @@ extension TupleView3: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + ] } } @@ -323,7 +217,7 @@ extension TupleView4: View { public typealias Content = EmptyView } -extension TupleView4: TypeSafeView { +extension TupleView4: TupleView { typealias Children = TupleViewChildren4 func children( @@ -332,13 +226,8 @@ extension TupleView4: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -346,87 +235,12 @@ extension TupleView4: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + ] } } @@ -457,7 +271,7 @@ extension TupleView5: View { public typealias Content = EmptyView } -extension TupleView5: TypeSafeView { +extension TupleView5: TupleView { typealias Children = TupleViewChildren5 func children( @@ -466,14 +280,8 @@ extension TupleView5: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - view4, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, view4, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -481,100 +289,13 @@ extension TupleView5: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child4.update( - with: view4, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view4))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + ] } } @@ -612,7 +333,7 @@ extension TupleView6: View { public typealias Content = EmptyView } -extension TupleView6: TypeSafeView { +extension TupleView6: TupleView { typealias Children = TupleViewChildren6 func children( @@ -621,15 +342,8 @@ extension TupleView6: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - view4, - view5, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, view4, view5, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -637,113 +351,14 @@ extension TupleView6: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child4.update( - with: view4, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view4))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child5.update( - with: view5, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view5))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + ] } } @@ -783,7 +398,7 @@ extension TupleView7: View { public typealias Content = EmptyView } -extension TupleView7: TypeSafeView { +extension TupleView7: TupleView { typealias Children = TupleViewChildren7 func children( @@ -792,16 +407,8 @@ extension TupleView7: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - view4, - view5, - view6, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, view4, view5, view6, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -809,126 +416,15 @@ extension TupleView7: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child4.update( - with: view4, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view4))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child5.update( - with: view5, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view5))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child6.update( - with: view6, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view6))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + ] } } @@ -971,7 +467,7 @@ extension TupleView8: View { public typealias Content = EmptyView } -extension TupleView8: TypeSafeView { +extension TupleView8: TupleView { typealias Children = TupleViewChildren8 func children( @@ -980,17 +476,8 @@ extension TupleView8: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - view4, - view5, - view6, - view7, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, view4, view5, view6, view7, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -998,139 +485,16 @@ extension TupleView8: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child4.update( - with: view4, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view4))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child5.update( - with: view5, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view5))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child6.update( - with: view6, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view6))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child7.update( - with: view7, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view7))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + ] } } @@ -1175,7 +539,7 @@ extension TupleView9: View { public typealias Content = EmptyView } -extension TupleView9: TypeSafeView { +extension TupleView9: TupleView { typealias Children = TupleViewChildren9< View0, View1, View2, View3, View4, View5, View6, View7, View8 > @@ -1186,18 +550,8 @@ extension TupleView9: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - view4, - view5, - view6, - view7, - view8, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, view4, view5, view6, view7, view8, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -1205,152 +559,17 @@ extension TupleView9: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child4.update( - with: view4, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view4))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child5.update( - with: view5, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view5))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child6.update( - with: view6, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view6))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child7.update( - with: view7, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view7))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child8.update( - with: view8, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view8))" - ) - ) - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) - } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + ] } } @@ -1397,7 +616,7 @@ extension TupleView10: View { public typealias Content = EmptyView } -extension TupleView10: TypeSafeView { +extension TupleView10: TupleView { typealias Children = TupleViewChildren10< View0, View1, View2, View3, View4, View5, View6, View7, View8, View9 > @@ -1408,19 +627,8 @@ extension TupleView10: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - view0, - view1, - view2, - view3, - view4, - view5, - view6, - view7, - view8, - view9, - backend: backend, - snapshots: snapshots, - environment: environment + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, + backend: backend, snapshots: snapshots, environment: environment ) } @@ -1428,164 +636,998 @@ extension TupleView10: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child0.update( - with: view0, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view0))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child1.update( - with: view1, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view1))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child2.update( - with: view2, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view2))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child3.update( - with: view3, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view3))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child4.update( - with: view4, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view4))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child5.update( - with: view5, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view5))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child6.update( - with: view6, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view6))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child7.update( - with: view7, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view7))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child8.update( - with: view8, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view8))" - ) - ) - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child9.update( - with: view9, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view9))" - ) - ) - return layoutableChildren + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + ] } +} - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) +/// A view with exactly 11 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView11< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + + public var body = EmptyView() + + /// Wraps 11 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 } +} - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, +extension TupleView11: View { + public typealias Content = EmptyView +} + +extension TupleView11: TupleView { + typealias Children = TupleViewChildren11< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10 + > + + func children( backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, + backend: backend, snapshots: snapshots, environment: environment ) } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + ] + } +} + +/// A view with exactly 12 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView12< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + + public var body = EmptyView() + + /// Wraps 12 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + } +} + +extension TupleView12: View { + public typealias Content = EmptyView +} + +extension TupleView12: TupleView { + typealias Children = TupleViewChildren12< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + ] + } +} + +/// A view with exactly 13 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView13< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + + public var body = EmptyView() + + /// Wraps 13 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + } +} + +extension TupleView13: View { + public typealias Content = EmptyView +} + +extension TupleView13: TupleView { + typealias Children = TupleViewChildren13< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, View12 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + ] + } +} + +/// A view with exactly 14 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView14< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + + public var body = EmptyView() + + /// Wraps 14 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + } +} + +extension TupleView14: View { + public typealias Content = EmptyView +} + +extension TupleView14: TupleView { + typealias Children = TupleViewChildren14< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + ] + } +} + +/// A view with exactly 15 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView15< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View, + View14: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + public var view14: View14 + + public var body = EmptyView() + + /// Wraps 15 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13, _ view14: View14 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + self.view14 = view14 + } +} + +extension TupleView15: View { + public typealias Content = EmptyView +} + +extension TupleView15: TupleView { + typealias Children = TupleViewChildren15< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13, View14 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + layoutableChild(node: children.child14, view: view14), + ] + } +} + +/// A view with exactly 16 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView16< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View, + View14: View, View15: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + public var view14: View14 + public var view15: View15 + + public var body = EmptyView() + + /// Wraps 16 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13, _ view14: View14, + _ view15: View15 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + self.view14 = view14 + self.view15 = view15 + } +} + +extension TupleView16: View { + public typealias Content = EmptyView +} + +extension TupleView16: TupleView { + typealias Children = TupleViewChildren16< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13, View14, View15 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + layoutableChild(node: children.child14, view: view14), + layoutableChild(node: children.child15, view: view15), + ] + } +} + +/// A view with exactly 17 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView17< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View, + View14: View, View15: View, View16: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + public var view14: View14 + public var view15: View15 + public var view16: View16 + + public var body = EmptyView() + + /// Wraps 17 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13, _ view14: View14, + _ view15: View15, _ view16: View16 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + self.view14 = view14 + self.view15 = view15 + self.view16 = view16 + } +} + +extension TupleView17: View { + public typealias Content = EmptyView +} + +extension TupleView17: TupleView { + typealias Children = TupleViewChildren17< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13, View14, View15, View16 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + layoutableChild(node: children.child14, view: view14), + layoutableChild(node: children.child15, view: view15), + layoutableChild(node: children.child16, view: view16), + ] + } +} + +/// A view with exactly 18 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView18< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View, + View14: View, View15: View, View16: View, View17: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + public var view14: View14 + public var view15: View15 + public var view16: View16 + public var view17: View17 + + public var body = EmptyView() + + /// Wraps 18 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13, _ view14: View14, + _ view15: View15, _ view16: View16, _ view17: View17 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + self.view14 = view14 + self.view15 = view15 + self.view16 = view16 + self.view17 = view17 + } +} + +extension TupleView18: View { + public typealias Content = EmptyView +} + +extension TupleView18: TupleView { + typealias Children = TupleViewChildren18< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13, View14, View15, View16, View17 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, view17, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + layoutableChild(node: children.child14, view: view14), + layoutableChild(node: children.child15, view: view15), + layoutableChild(node: children.child16, view: view16), + layoutableChild(node: children.child17, view: view17), + ] + } +} + +/// A view with exactly 19 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView19< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View, + View14: View, View15: View, View16: View, View17: View, View18: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + public var view14: View14 + public var view15: View15 + public var view16: View16 + public var view17: View17 + public var view18: View18 + + public var body = EmptyView() + + /// Wraps 19 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13, _ view14: View14, + _ view15: View15, _ view16: View16, _ view17: View17, _ view18: View18 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + self.view14 = view14 + self.view15 = view15 + self.view16 = view16 + self.view17 = view17 + self.view18 = view18 + } +} + +extension TupleView19: View { + public typealias Content = EmptyView +} + +extension TupleView19: TupleView { + typealias Children = TupleViewChildren19< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13, View14, View15, View16, View17, View18 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, view17, view18, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + layoutableChild(node: children.child14, view: view14), + layoutableChild(node: children.child15, view: view15), + layoutableChild(node: children.child16, view: view16), + layoutableChild(node: children.child17, view: view17), + layoutableChild(node: children.child18, view: view18), + ] + } +} + +/// A view with exactly 20 children. Autogenerated as an alternative to Swift's not yet +/// production ready variadic generics. +/// +/// Has the same behaviour as ``Group`` when rendered directly. +public struct TupleView20< + View0: View, View1: View, View2: View, View3: View, View4: View, View5: View, View6: View, + View7: View, View8: View, View9: View, View10: View, View11: View, View12: View, View13: View, + View14: View, View15: View, View16: View, View17: View, View18: View, View19: View +> { + public var view0: View0 + public var view1: View1 + public var view2: View2 + public var view3: View3 + public var view4: View4 + public var view5: View5 + public var view6: View6 + public var view7: View7 + public var view8: View8 + public var view9: View9 + public var view10: View10 + public var view11: View11 + public var view12: View12 + public var view13: View13 + public var view14: View14 + public var view15: View15 + public var view16: View16 + public var view17: View17 + public var view18: View18 + public var view19: View19 + + public var body = EmptyView() + + /// Wraps 20 child views in a single container view. + public init( + _ view0: View0, _ view1: View1, _ view2: View2, _ view3: View3, _ view4: View4, + _ view5: View5, _ view6: View6, _ view7: View7, _ view8: View8, _ view9: View9, + _ view10: View10, _ view11: View11, _ view12: View12, _ view13: View13, _ view14: View14, + _ view15: View15, _ view16: View16, _ view17: View17, _ view18: View18, _ view19: View19 + ) { + self.view0 = view0 + self.view1 = view1 + self.view2 = view2 + self.view3 = view3 + self.view4 = view4 + self.view5 = view5 + self.view6 = view6 + self.view7 = view7 + self.view8 = view8 + self.view9 = view9 + self.view10 = view10 + self.view11 = view11 + self.view12 = view12 + self.view13 = view13 + self.view14 = view14 + self.view15 = view15 + self.view16 = view16 + self.view17 = view17 + self.view18 = view18 + self.view19 = view19 + } +} + +extension TupleView20: View { + public typealias Content = EmptyView +} + +extension TupleView20: TupleView { + typealias Children = TupleViewChildren20< + View0, View1, View2, View3, View4, View5, View6, View7, View8, View9, View10, View11, + View12, View13, View14, View15, View16, View17, View18, View19 + > + + func children( + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) -> Children { + return Children( + view0, view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11, + view12, view13, view14, view15, view16, view17, view18, view19, + backend: backend, snapshots: snapshots, environment: environment + ) + } + + func layoutableChildren( + backend: Backend, + children: Children + ) -> [LayoutSystem.LayoutableChild] { + [ + layoutableChild(node: children.child0, view: view0), + layoutableChild(node: children.child1, view: view1), + layoutableChild(node: children.child2, view: view2), + layoutableChild(node: children.child3, view: view3), + layoutableChild(node: children.child4, view: view4), + layoutableChild(node: children.child5, view: view5), + layoutableChild(node: children.child6, view: view6), + layoutableChild(node: children.child7, view: view7), + layoutableChild(node: children.child8, view: view8), + layoutableChild(node: children.child9, view: view9), + layoutableChild(node: children.child10, view: view10), + layoutableChild(node: children.child11, view: view11), + layoutableChild(node: children.child12, view: view12), + layoutableChild(node: children.child13, view: view13), + layoutableChild(node: children.child14, view: view14), + layoutableChild(node: children.child15, view: view15), + layoutableChild(node: children.child16, view: view16), + layoutableChild(node: children.child17, view: view17), + layoutableChild(node: children.child18, view: view18), + layoutableChild(node: children.child19, view: view19), + ] + } } diff --git a/Sources/SwiftCrossUI/Views/TupleView.swift.gyb b/Sources/SwiftCrossUI/Views/TupleView.swift.gyb index 6377bb915a..38396af12d 100644 --- a/Sources/SwiftCrossUI/Views/TupleView.swift.gyb +++ b/Sources/SwiftCrossUI/Views/TupleView.swift.gyb @@ -1,7 +1,62 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TupleView.swift.gyb instead. %{ -maximum_view_count = 10 +maximum_view_count = 20 }% +@MainActor +private func layoutableChild( + node: AnyViewGraphNode, + view: V +) -> LayoutSystem.LayoutableChild { + LayoutSystem.LayoutableChild( + update: { proposedSize, environment, dryRun in + node.update( + with: view, + proposedSize: proposedSize, + environment: environment, + dryRun: dryRun + ) + }, + tag: "\(type(of: view))" + ) +} + +/// Just a vessel for some default implementations to compress this generated code. +@MainActor +protocol TupleView: TypeSafeView {} + +extension TupleView { + @MainActor + func asWidget( + _ children: Children, + backend: Backend + ) -> Backend.Widget { + let group = Group(content: self) + return group.asWidget(children, backend: backend) + } + + @MainActor + func update( + _ widget: Backend.Widget, + children: Children, + proposedSize: SIMD2, + environment: EnvironmentValues, + backend: Backend, + dryRun: Bool + ) -> ViewUpdateResult { + let group = Group(content: self) + return group.update( + widget, + children: children, + proposedSize: proposedSize, + environment: environment, + backend: backend, + dryRun: dryRun + ) + } +} + % for i in range(maximum_view_count): %{ view = "TupleView%d" % (i + 1) @@ -31,7 +86,7 @@ extension ${view}: View { public typealias Content = EmptyView } -extension ${view}: TypeSafeView { +extension ${view}: TupleView { typealias Children = TupleViewChildren${i + 1}<${children_type_parameters}> func children( @@ -40,12 +95,8 @@ extension ${view}: TypeSafeView { environment: EnvironmentValues ) -> Children { return Children( - % for j in range(i + 1): - view${j}, - % end - backend: backend, - snapshots: snapshots, - environment: environment + ${" ".join("view%d," % j for j in range(i + 1))} + backend: backend, snapshots: snapshots, environment: environment ) } @@ -53,49 +104,10 @@ extension ${view}: TypeSafeView { backend: Backend, children: Children ) -> [LayoutSystem.LayoutableChild] { - var layoutableChildren: [LayoutSystem.LayoutableChild] = [] - % for j in range(i + 1): - layoutableChildren.append( - LayoutSystem.LayoutableChild( - update: { proposedSize, environment, dryRun in - children.child${j}.update( - with: view${j}, - proposedSize: proposedSize, - environment: environment, - dryRun: dryRun - ) - }, - tag: "\(type(of: view${j}))" - ) - ) - % end - return layoutableChildren - } - - func asWidget( - _ children: Children, - backend: Backend - ) -> Backend.Widget { - let group = Group(content: self) - return group.asWidget(children, backend: backend) + [ + % for j in range(i + 1): + layoutableChild(node: children.child${j}, view: view${j}), + % end + ] } - - func update( - _ widget: Backend.Widget, - children: Children, - proposedSize: SIMD2, - environment: EnvironmentValues, - backend: Backend, - dryRun: Bool - ) -> ViewUpdateResult { - let group = Group(content: self) - return group.update( - widget, - children: children, - proposedSize: proposedSize, - environment: environment, - backend: backend, - dryRun: dryRun - ) - } } diff --git a/Sources/SwiftCrossUI/Views/TupleViewChildren.swift b/Sources/SwiftCrossUI/Views/TupleViewChildren.swift index f8409f94bb..acf995547a 100644 --- a/Sources/SwiftCrossUI/Views/TupleViewChildren.swift +++ b/Sources/SwiftCrossUI/Views/TupleViewChildren.swift @@ -1,10 +1,29 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TupleViewChildren.swift.gyb instead. + +/// A helper function to shorten node initialisations to a single line. This +/// helps compress the generated code a bit and minimise the number of additions +/// and deletions caused by updating the generator. +@MainActor +private func node( + for view: V, + _ backend: Backend, + _ snapshot: ViewGraphSnapshotter.NodeSnapshot?, + _ environment: EnvironmentValues +) -> AnyViewGraphNode { + AnyViewGraphNode( + for: view, + backend: backend, + snapshot: snapshot, + environment: environment + ) +} + /// A fixed-length strongly-typed collection of 1 child nodes. A counterpart to /// ``TupleView1``. public struct TupleViewChildren1: ViewGraphNodeChildren { public var widgets: [AnyWidget] { - return [ - child0.widget - ] + return [child0.widget] } public var erasedNodes: [ErasedViewGraphNode] { @@ -27,12 +46,7 @@ public struct TupleViewChildren1: ViewGraphNodeChildren { ViewGraphSnapshotter.name(of: Child0.self) ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) } } @@ -40,10 +54,7 @@ public struct TupleViewChildren1: ViewGraphNodeChildren { /// ``TupleView2``. public struct TupleViewChildren2: ViewGraphNodeChildren { public var widgets: [AnyWidget] { - return [ - child0.widget, - child1.widget, - ] + return [child0.widget, child1.widget] } public var erasedNodes: [ErasedViewGraphNode] { @@ -60,29 +71,17 @@ public struct TupleViewChildren2: ViewGraphNodeChild /// Creates the nodes for 2 child views. public init( - _ child0: Child0, - _ child1: Child1, + _ child0: Child0, _ child1: Child1, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) } } @@ -90,11 +89,7 @@ public struct TupleViewChildren2: ViewGraphNodeChild /// ``TupleView3``. public struct TupleViewChildren3: ViewGraphNodeChildren { public var widgets: [AnyWidget] { - return [ - child0.widget, - child1.widget, - child2.widget, - ] + return [child0.widget, child1.widget, child2.widget] } public var erasedNodes: [ErasedViewGraphNode] { @@ -114,37 +109,19 @@ public struct TupleViewChildren3: View /// Creates the nodes for 3 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, + _ child0: Child0, _ child1: Child1, _ child2: Child2, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), ViewGraphSnapshotter.name(of: Child2.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) } } @@ -154,12 +131,7 @@ public struct TupleViewChildren4( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) } } @@ -230,13 +177,7 @@ public struct TupleViewChildren5< Child0: View, Child1: View, Child2: View, Child3: View, Child4: View >: ViewGraphNodeChildren { public var widgets: [AnyWidget] { - return [ - child0.widget, - child1.widget, - child2.widget, - child3.widget, - child4.widget, - ] + return [child0.widget, child1.widget, child2.widget, child3.widget, child4.widget] } public var erasedNodes: [ErasedViewGraphNode] { @@ -262,53 +203,22 @@ public struct TupleViewChildren5< /// Creates the nodes for 5 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, - _ child4: Child4, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), ViewGraphSnapshotter.name(of: Child4.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) - self.child4 = AnyViewGraphNode( - for: child4, - backend: backend, - snapshot: snapshots[4], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) } } @@ -319,11 +229,7 @@ public struct TupleViewChildren6< >: ViewGraphNodeChildren { public var widgets: [AnyWidget] { return [ - child0.widget, - child1.widget, - child2.widget, - child3.widget, - child4.widget, + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, child5.widget, ] } @@ -354,61 +260,24 @@ public struct TupleViewChildren6< /// Creates the nodes for 6 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, - _ child4: Child4, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, _ child5: Child5, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), - ViewGraphSnapshotter.name(of: Child4.self), - ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) - self.child4 = AnyViewGraphNode( - for: child4, - backend: backend, - snapshot: snapshots[4], - environment: environment - ) - self.child5 = AnyViewGraphNode( - for: child5, - backend: backend, - snapshot: snapshots[5], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) } } @@ -419,13 +288,8 @@ public struct TupleViewChildren7< >: ViewGraphNodeChildren { public var widgets: [AnyWidget] { return [ - child0.widget, - child1.widget, - child2.widget, - child3.widget, - child4.widget, - child5.widget, - child6.widget, + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, ] } @@ -458,69 +322,26 @@ public struct TupleViewChildren7< /// Creates the nodes for 7 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, - _ child4: Child4, - _ child5: Child5, - _ child6: Child6, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), - ViewGraphSnapshotter.name(of: Child4.self), - ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), ViewGraphSnapshotter.name(of: Child6.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) - self.child4 = AnyViewGraphNode( - for: child4, - backend: backend, - snapshot: snapshots[4], - environment: environment - ) - self.child5 = AnyViewGraphNode( - for: child5, - backend: backend, - snapshot: snapshots[5], - environment: environment - ) - self.child6 = AnyViewGraphNode( - for: child6, - backend: backend, - snapshot: snapshots[6], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) } } @@ -532,14 +353,8 @@ public struct TupleViewChildren8< >: ViewGraphNodeChildren { public var widgets: [AnyWidget] { return [ - child0.widget, - child1.widget, - child2.widget, - child3.widget, - child4.widget, - child5.widget, - child6.widget, - child7.widget, + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, ] } @@ -575,77 +390,27 @@ public struct TupleViewChildren8< /// Creates the nodes for 8 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, - _ child4: Child4, - _ child5: Child5, - _ child6: Child6, - _ child7: Child7, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), - ViewGraphSnapshotter.name(of: Child4.self), - ViewGraphSnapshotter.name(of: Child5.self), - ViewGraphSnapshotter.name(of: Child6.self), - ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) - self.child4 = AnyViewGraphNode( - for: child4, - backend: backend, - snapshot: snapshots[4], - environment: environment - ) - self.child5 = AnyViewGraphNode( - for: child5, - backend: backend, - snapshot: snapshots[5], - environment: environment - ) - self.child6 = AnyViewGraphNode( - for: child6, - backend: backend, - snapshot: snapshots[6], - environment: environment - ) - self.child7 = AnyViewGraphNode( - for: child7, - backend: backend, - snapshot: snapshots[7], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) } } @@ -657,15 +422,8 @@ public struct TupleViewChildren9< >: ViewGraphNodeChildren { public var widgets: [AnyWidget] { return [ - child0.widget, - child1.widget, - child2.widget, - child3.widget, - child4.widget, - child5.widget, - child6.widget, - child7.widget, - child8.widget, + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, ] } @@ -704,85 +462,29 @@ public struct TupleViewChildren9< /// Creates the nodes for 9 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, - _ child4: Child4, - _ child5: Child5, - _ child6: Child6, - _ child7: Child7, - _ child8: Child8, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), - ViewGraphSnapshotter.name(of: Child4.self), - ViewGraphSnapshotter.name(of: Child5.self), - ViewGraphSnapshotter.name(of: Child6.self), - ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), ViewGraphSnapshotter.name(of: Child8.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) - self.child4 = AnyViewGraphNode( - for: child4, - backend: backend, - snapshot: snapshots[4], - environment: environment - ) - self.child5 = AnyViewGraphNode( - for: child5, - backend: backend, - snapshot: snapshots[5], - environment: environment - ) - self.child6 = AnyViewGraphNode( - for: child6, - backend: backend, - snapshot: snapshots[6], - environment: environment - ) - self.child7 = AnyViewGraphNode( - for: child7, - backend: backend, - snapshot: snapshots[7], - environment: environment - ) - self.child8 = AnyViewGraphNode( - for: child8, - backend: backend, - snapshot: snapshots[8], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) } } @@ -794,16 +496,8 @@ public struct TupleViewChildren10< >: ViewGraphNodeChildren { public var widgets: [AnyWidget] { return [ - child0.widget, - child1.widget, - child2.widget, - child3.widget, - child4.widget, - child5.widget, - child6.widget, - child7.widget, - child8.widget, - child9.widget, + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, ] } @@ -845,92 +539,1127 @@ public struct TupleViewChildren10< /// Creates the nodes for 10 child views. public init( - _ child0: Child0, - _ child1: Child1, - _ child2: Child2, - _ child3: Child3, - _ child4: Child4, - _ child5: Child5, - _ child6: Child6, - _ child7: Child7, - _ child8: Child8, - _ child9: Child9, + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - ViewGraphSnapshotter.name(of: Child0.self), - ViewGraphSnapshotter.name(of: Child1.self), - ViewGraphSnapshotter.name(of: Child2.self), - ViewGraphSnapshotter.name(of: Child3.self), - ViewGraphSnapshotter.name(of: Child4.self), - ViewGraphSnapshotter.name(of: Child5.self), - ViewGraphSnapshotter.name(of: Child6.self), - ViewGraphSnapshotter.name(of: Child7.self), - ViewGraphSnapshotter.name(of: Child8.self), - ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + } +} + +/// A fixed-length strongly-typed collection of 11 child nodes. A counterpart to +/// ``TupleView11``. +public struct TupleViewChildren11< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + + /// Creates the nodes for 11 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + } +} + +/// A fixed-length strongly-typed collection of 12 child nodes. A counterpart to +/// ``TupleView12``. +public struct TupleViewChildren12< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + + /// Creates the nodes for 12 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + } +} + +/// A fixed-length strongly-typed collection of 13 child nodes. A counterpart to +/// ``TupleView13``. +public struct TupleViewChildren13< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + + /// Creates the nodes for 13 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + } +} + +/// A fixed-length strongly-typed collection of 14 child nodes. A counterpart to +/// ``TupleView14``. +public struct TupleViewChildren14< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + + /// Creates the nodes for 14 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + } +} + +/// A fixed-length strongly-typed collection of 15 child nodes. A counterpart to +/// ``TupleView15``. +public struct TupleViewChildren15< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View, Child14: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, child14.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ErasedViewGraphNode(wrapping: child14), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child14: AnyViewGraphNode + + /// Creates the nodes for 15 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + _ child14: Child14, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ViewGraphSnapshotter.name(of: Child14.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + self.child14 = node(for: child14, backend, snapshots[14], environment) + } +} + +/// A fixed-length strongly-typed collection of 16 child nodes. A counterpart to +/// ``TupleView16``. +public struct TupleViewChildren16< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View, Child14: View, Child15: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, child14.widget, + child15.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ErasedViewGraphNode(wrapping: child14), + ErasedViewGraphNode(wrapping: child15), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child14: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child15: AnyViewGraphNode + + /// Creates the nodes for 16 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + _ child14: Child14, _ child15: Child15, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ViewGraphSnapshotter.name(of: Child14.self), + ViewGraphSnapshotter.name(of: Child15.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + self.child14 = node(for: child14, backend, snapshots[14], environment) + self.child15 = node(for: child15, backend, snapshots[15], environment) + } +} + +/// A fixed-length strongly-typed collection of 17 child nodes. A counterpart to +/// ``TupleView17``. +public struct TupleViewChildren17< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View, Child14: View, Child15: View, Child16: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, child14.widget, + child15.widget, child16.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ErasedViewGraphNode(wrapping: child14), + ErasedViewGraphNode(wrapping: child15), + ErasedViewGraphNode(wrapping: child16), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child14: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child15: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child16: AnyViewGraphNode + + /// Creates the nodes for 17 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + _ child14: Child14, _ child15: Child15, _ child16: Child16, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ViewGraphSnapshotter.name(of: Child14.self), + ViewGraphSnapshotter.name(of: Child15.self), + ViewGraphSnapshotter.name(of: Child16.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + self.child14 = node(for: child14, backend, snapshots[14], environment) + self.child15 = node(for: child15, backend, snapshots[15], environment) + self.child16 = node(for: child16, backend, snapshots[16], environment) + } +} + +/// A fixed-length strongly-typed collection of 18 child nodes. A counterpart to +/// ``TupleView18``. +public struct TupleViewChildren18< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View, Child14: View, Child15: View, Child16: View, Child17: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, child14.widget, + child15.widget, child16.widget, child17.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ErasedViewGraphNode(wrapping: child14), + ErasedViewGraphNode(wrapping: child15), + ErasedViewGraphNode(wrapping: child16), + ErasedViewGraphNode(wrapping: child17), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child14: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child15: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child16: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child17: AnyViewGraphNode + + /// Creates the nodes for 18 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + _ child14: Child14, _ child15: Child15, _ child16: Child16, _ child17: Child17, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ViewGraphSnapshotter.name(of: Child14.self), + ViewGraphSnapshotter.name(of: Child15.self), + ViewGraphSnapshotter.name(of: Child16.self), + ViewGraphSnapshotter.name(of: Child17.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + self.child14 = node(for: child14, backend, snapshots[14], environment) + self.child15 = node(for: child15, backend, snapshots[15], environment) + self.child16 = node(for: child16, backend, snapshots[16], environment) + self.child17 = node(for: child17, backend, snapshots[17], environment) + } +} + +/// A fixed-length strongly-typed collection of 19 child nodes. A counterpart to +/// ``TupleView19``. +public struct TupleViewChildren19< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View, Child14: View, Child15: View, Child16: View, Child17: View, + Child18: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, child14.widget, + child15.widget, child16.widget, child17.widget, child18.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ErasedViewGraphNode(wrapping: child14), + ErasedViewGraphNode(wrapping: child15), + ErasedViewGraphNode(wrapping: child16), + ErasedViewGraphNode(wrapping: child17), + ErasedViewGraphNode(wrapping: child18), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child14: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child15: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child16: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child17: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child18: AnyViewGraphNode + + /// Creates the nodes for 19 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + _ child14: Child14, _ child15: Child15, _ child16: Child16, _ child17: Child17, + _ child18: Child18, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ViewGraphSnapshotter.name(of: Child14.self), + ViewGraphSnapshotter.name(of: Child15.self), + ViewGraphSnapshotter.name(of: Child16.self), + ViewGraphSnapshotter.name(of: Child17.self), + ViewGraphSnapshotter.name(of: Child18.self), + ] + let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + self.child14 = node(for: child14, backend, snapshots[14], environment) + self.child15 = node(for: child15, backend, snapshots[15], environment) + self.child16 = node(for: child16, backend, snapshots[16], environment) + self.child17 = node(for: child17, backend, snapshots[17], environment) + self.child18 = node(for: child18, backend, snapshots[18], environment) + } +} + +/// A fixed-length strongly-typed collection of 20 child nodes. A counterpart to +/// ``TupleView20``. +public struct TupleViewChildren20< + Child0: View, Child1: View, Child2: View, Child3: View, Child4: View, Child5: View, + Child6: View, Child7: View, Child8: View, Child9: View, Child10: View, Child11: View, + Child12: View, Child13: View, Child14: View, Child15: View, Child16: View, Child17: View, + Child18: View, Child19: View +>: ViewGraphNodeChildren { + public var widgets: [AnyWidget] { + return [ + child0.widget, child1.widget, child2.widget, child3.widget, child4.widget, + child5.widget, child6.widget, child7.widget, child8.widget, child9.widget, + child10.widget, child11.widget, child12.widget, child13.widget, child14.widget, + child15.widget, child16.widget, child17.widget, child18.widget, child19.widget, + ] + } + + public var erasedNodes: [ErasedViewGraphNode] { + return [ + ErasedViewGraphNode(wrapping: child0), + ErasedViewGraphNode(wrapping: child1), + ErasedViewGraphNode(wrapping: child2), + ErasedViewGraphNode(wrapping: child3), + ErasedViewGraphNode(wrapping: child4), + ErasedViewGraphNode(wrapping: child5), + ErasedViewGraphNode(wrapping: child6), + ErasedViewGraphNode(wrapping: child7), + ErasedViewGraphNode(wrapping: child8), + ErasedViewGraphNode(wrapping: child9), + ErasedViewGraphNode(wrapping: child10), + ErasedViewGraphNode(wrapping: child11), + ErasedViewGraphNode(wrapping: child12), + ErasedViewGraphNode(wrapping: child13), + ErasedViewGraphNode(wrapping: child14), + ErasedViewGraphNode(wrapping: child15), + ErasedViewGraphNode(wrapping: child16), + ErasedViewGraphNode(wrapping: child17), + ErasedViewGraphNode(wrapping: child18), + ErasedViewGraphNode(wrapping: child19), + ] + } + + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child0: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child1: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child2: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child3: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child4: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child5: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child6: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child7: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child8: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child9: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child10: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child11: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child12: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child13: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child14: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child15: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child16: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child17: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child18: AnyViewGraphNode + /// ``AnyViewGraphNode`` is used instead of ``ViewGraphNode`` because otherwise the backend leaks into views. + public var child19: AnyViewGraphNode + + /// Creates the nodes for 20 child views. + public init( + _ child0: Child0, _ child1: Child1, _ child2: Child2, _ child3: Child3, _ child4: Child4, + _ child5: Child5, _ child6: Child6, _ child7: Child7, _ child8: Child8, _ child9: Child9, + _ child10: Child10, _ child11: Child11, _ child12: Child12, _ child13: Child13, + _ child14: Child14, _ child15: Child15, _ child16: Child16, _ child17: Child17, + _ child18: Child18, _ child19: Child19, + backend: Backend, + snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, + environment: EnvironmentValues + ) { + let viewTypeNames = [ + ViewGraphSnapshotter.name(of: Child0.self), ViewGraphSnapshotter.name(of: Child1.self), + ViewGraphSnapshotter.name(of: Child2.self), ViewGraphSnapshotter.name(of: Child3.self), + ViewGraphSnapshotter.name(of: Child4.self), ViewGraphSnapshotter.name(of: Child5.self), + ViewGraphSnapshotter.name(of: Child6.self), ViewGraphSnapshotter.name(of: Child7.self), + ViewGraphSnapshotter.name(of: Child8.self), ViewGraphSnapshotter.name(of: Child9.self), + ViewGraphSnapshotter.name(of: Child10.self), + ViewGraphSnapshotter.name(of: Child11.self), + ViewGraphSnapshotter.name(of: Child12.self), + ViewGraphSnapshotter.name(of: Child13.self), + ViewGraphSnapshotter.name(of: Child14.self), + ViewGraphSnapshotter.name(of: Child15.self), + ViewGraphSnapshotter.name(of: Child16.self), + ViewGraphSnapshotter.name(of: Child17.self), + ViewGraphSnapshotter.name(of: Child18.self), + ViewGraphSnapshotter.name(of: Child19.self), ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) - self.child0 = AnyViewGraphNode( - for: child0, - backend: backend, - snapshot: snapshots[0], - environment: environment - ) - self.child1 = AnyViewGraphNode( - for: child1, - backend: backend, - snapshot: snapshots[1], - environment: environment - ) - self.child2 = AnyViewGraphNode( - for: child2, - backend: backend, - snapshot: snapshots[2], - environment: environment - ) - self.child3 = AnyViewGraphNode( - for: child3, - backend: backend, - snapshot: snapshots[3], - environment: environment - ) - self.child4 = AnyViewGraphNode( - for: child4, - backend: backend, - snapshot: snapshots[4], - environment: environment - ) - self.child5 = AnyViewGraphNode( - for: child5, - backend: backend, - snapshot: snapshots[5], - environment: environment - ) - self.child6 = AnyViewGraphNode( - for: child6, - backend: backend, - snapshot: snapshots[6], - environment: environment - ) - self.child7 = AnyViewGraphNode( - for: child7, - backend: backend, - snapshot: snapshots[7], - environment: environment - ) - self.child8 = AnyViewGraphNode( - for: child8, - backend: backend, - snapshot: snapshots[8], - environment: environment - ) - self.child9 = AnyViewGraphNode( - for: child9, - backend: backend, - snapshot: snapshots[9], - environment: environment - ) + self.child0 = node(for: child0, backend, snapshots[0], environment) + self.child1 = node(for: child1, backend, snapshots[1], environment) + self.child2 = node(for: child2, backend, snapshots[2], environment) + self.child3 = node(for: child3, backend, snapshots[3], environment) + self.child4 = node(for: child4, backend, snapshots[4], environment) + self.child5 = node(for: child5, backend, snapshots[5], environment) + self.child6 = node(for: child6, backend, snapshots[6], environment) + self.child7 = node(for: child7, backend, snapshots[7], environment) + self.child8 = node(for: child8, backend, snapshots[8], environment) + self.child9 = node(for: child9, backend, snapshots[9], environment) + self.child10 = node(for: child10, backend, snapshots[10], environment) + self.child11 = node(for: child11, backend, snapshots[11], environment) + self.child12 = node(for: child12, backend, snapshots[12], environment) + self.child13 = node(for: child13, backend, snapshots[13], environment) + self.child14 = node(for: child14, backend, snapshots[14], environment) + self.child15 = node(for: child15, backend, snapshots[15], environment) + self.child16 = node(for: child16, backend, snapshots[16], environment) + self.child17 = node(for: child17, backend, snapshots[17], environment) + self.child18 = node(for: child18, backend, snapshots[18], environment) + self.child19 = node(for: child19, backend, snapshots[19], environment) } } diff --git a/Sources/SwiftCrossUI/Views/TupleViewChildren.swift.gyb b/Sources/SwiftCrossUI/Views/TupleViewChildren.swift.gyb index 63aff4f1a7..db3e4309f0 100644 --- a/Sources/SwiftCrossUI/Views/TupleViewChildren.swift.gyb +++ b/Sources/SwiftCrossUI/Views/TupleViewChildren.swift.gyb @@ -1,8 +1,28 @@ +// This file was generated using gyb. Do not edit it directly. Edit +// TupleViewChildren.swift.gyb instead. %{ -maximum_child_count = 10 +maximum_child_count = 20 }% -% for i in range(10): +/// A helper function to shorten node initialisations to a single line. This +/// helps compress the generated code a bit and minimise the number of additions +/// and deletions caused by updating the generator. +@MainActor +private func node( + for view: V, + _ backend: Backend, + _ snapshot: ViewGraphSnapshotter.NodeSnapshot?, + _ environment: EnvironmentValues +) -> AnyViewGraphNode { + AnyViewGraphNode( + for: view, + backend: backend, + snapshot: snapshot, + environment: environment + ) +} + +% for i in range(maximum_child_count): %{ children = [] for j in range(i + 1): @@ -16,11 +36,7 @@ variadic_type_parameters = ", ".join(children) /// ``TupleView${i + 1}``. public struct TupleViewChildren${i + 1}<${struct_type_parameters}>: ViewGraphNodeChildren { public var widgets: [AnyWidget] { - return [ - % for child in children: - ${child.lower()}.widget, - % end - ] + return [${", ".join("%s.widget" % child.lower() for child in children)}] } public var erasedNodes: [ErasedViewGraphNode] { @@ -38,26 +54,17 @@ public struct TupleViewChildren${i + 1}<${struct_type_parameters}>: ViewGraphNod /// Creates the nodes for ${i + 1} child views. public init( - % for child in children: - _ ${child.lower()}: ${child}, - % end + ${" ".join("_ %s: %s," % (child.lower(), child) for child in children)} backend: Backend, snapshots: [ViewGraphSnapshotter.NodeSnapshot]?, environment: EnvironmentValues ) { let viewTypeNames = [ - % for child in children: - ViewGraphSnapshotter.name(of: ${child}.self), - % end + ${", ".join("ViewGraphSnapshotter.name(of: %s.self)" % child for child in children)} ] let snapshots = ViewGraphSnapshotter.match(snapshots ?? [], to: viewTypeNames) % for j, child in enumerate(children): - self.${child.lower()} = AnyViewGraphNode( - for: ${child.lower()}, - backend: backend, - snapshot: snapshots[${j}], - environment: environment - ) + self.${child.lower()} = node(for: ${child.lower()}, backend, snapshots[${j}], environment) % end } }