@@ -1087,6 +1087,114 @@ extension ColdSignal {
10871087 }
10881088}
10891089
1090+ /// An overloaded function that combines the values of up to 10 signals, in the
1091+ /// manner described by ColdSignal.combineLatestWith().
1092+ public func combineLatest< A, B> ( a: ColdSignal < A > , b: ColdSignal < B > ) -> ColdSignal < ( A , B ) > {
1093+ return a. combineLatestWith ( b)
1094+ }
1095+
1096+ public func combineLatest< A, B, C> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > ) -> ColdSignal < ( A , B , C ) > {
1097+ return combineLatest ( a, b)
1098+ . combineLatestWith ( c)
1099+ . map ( repack)
1100+ }
1101+
1102+ public func combineLatest< A, B, C, D> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > ) -> ColdSignal < ( A , B , C , D ) > {
1103+ return combineLatest ( a, b, c)
1104+ . combineLatestWith ( d)
1105+ . map ( repack)
1106+ }
1107+
1108+ public func combineLatest< A, B, C, D, E> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > ) -> ColdSignal < ( A , B , C , D , E ) > {
1109+ return combineLatest ( a, b, c, d)
1110+ . combineLatestWith ( e)
1111+ . map ( repack)
1112+ }
1113+
1114+ public func combineLatest< A, B, C, D, E, F> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > ) -> ColdSignal < ( A , B , C , D , E , F ) > {
1115+ return combineLatest ( a, b, c, d, e)
1116+ . combineLatestWith ( f)
1117+ . map ( repack)
1118+ }
1119+
1120+ public func combineLatest< A, B, C, D, E, F, G> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > ) -> ColdSignal < ( A , B , C , D , E , F , G ) > {
1121+ return combineLatest ( a, b, c, d, e, f)
1122+ . combineLatestWith ( g)
1123+ . map ( repack)
1124+ }
1125+
1126+ public func combineLatest< A, B, C, D, E, F, G, H> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > , h: ColdSignal < H > ) -> ColdSignal < ( A , B , C , D , E , F , G , H ) > {
1127+ return combineLatest ( a, b, c, d, e, f, g)
1128+ . combineLatestWith ( h)
1129+ . map ( repack)
1130+ }
1131+
1132+ public func combineLatest< A, B, C, D, E, F, G, H, I> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > , h: ColdSignal < H > , i: ColdSignal < I > ) -> ColdSignal < ( A , B , C , D , E , F , G , H , I ) > {
1133+ return combineLatest ( a, b, c, d, e, f, g, h)
1134+ . combineLatestWith ( i)
1135+ . map ( repack)
1136+ }
1137+
1138+ public func combineLatest< A, B, C, D, E, F, G, H, I, J> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > , h: ColdSignal < H > , i: ColdSignal < I > , j: ColdSignal < J > ) -> ColdSignal < ( A , B , C , D , E , F , G , H , I , J ) > {
1139+ return combineLatest ( a, b, c, d, e, f, g, h, i)
1140+ . combineLatestWith ( j)
1141+ . map ( repack)
1142+ }
1143+
1144+ /// An overloaded function that zips the values of up to 10 signals, in the
1145+ /// manner described by ColdSignal.zipWith().
1146+ public func zip< A, B> ( a: ColdSignal < A > , b: ColdSignal < B > ) -> ColdSignal < ( A , B ) > {
1147+ return a. zipWith ( b)
1148+ }
1149+
1150+ public func zip< A, B, C> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > ) -> ColdSignal < ( A , B , C ) > {
1151+ return zip ( a, b)
1152+ . zipWith ( c)
1153+ . map ( repack)
1154+ }
1155+
1156+ public func zip< A, B, C, D> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > ) -> ColdSignal < ( A , B , C , D ) > {
1157+ return zip ( a, b, c)
1158+ . zipWith ( d)
1159+ . map ( repack)
1160+ }
1161+
1162+ public func zip< A, B, C, D, E> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > ) -> ColdSignal < ( A , B , C , D , E ) > {
1163+ return zip ( a, b, c, d)
1164+ . zipWith ( e)
1165+ . map ( repack)
1166+ }
1167+
1168+ public func zip< A, B, C, D, E, F> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > ) -> ColdSignal < ( A , B , C , D , E , F ) > {
1169+ return zip ( a, b, c, d, e)
1170+ . zipWith ( f)
1171+ . map ( repack)
1172+ }
1173+
1174+ public func zip< A, B, C, D, E, F, G> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > ) -> ColdSignal < ( A , B , C , D , E , F , G ) > {
1175+ return zip ( a, b, c, d, e, f)
1176+ . zipWith ( g)
1177+ . map ( repack)
1178+ }
1179+
1180+ public func zip< A, B, C, D, E, F, G, H> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > , h: ColdSignal < H > ) -> ColdSignal < ( A , B , C , D , E , F , G , H ) > {
1181+ return zip ( a, b, c, d, e, f, g)
1182+ . zipWith ( h)
1183+ . map ( repack)
1184+ }
1185+
1186+ public func zip< A, B, C, D, E, F, G, H, I> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > , h: ColdSignal < H > , i: ColdSignal < I > ) -> ColdSignal < ( A , B , C , D , E , F , G , H , I ) > {
1187+ return zip ( a, b, c, d, e, f, g, h)
1188+ . zipWith ( i)
1189+ . map ( repack)
1190+ }
1191+
1192+ public func zip< A, B, C, D, E, F, G, H, I, J> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > , e: ColdSignal < E > , f: ColdSignal < F > , g: ColdSignal < G > , h: ColdSignal < H > , i: ColdSignal < I > , j: ColdSignal < J > ) -> ColdSignal < ( A , B , C , D , E , F , G , H , I , J ) > {
1193+ return zip ( a, b, c, d, e, f, g, h, i)
1194+ . zipWith ( j)
1195+ . map ( repack)
1196+ }
1197+
10901198/// Blocking methods for receiving values.
10911199extension ColdSignal {
10921200 /// Starts the receiver, then returns the first value received.
0 commit comments