@@ -998,6 +998,114 @@ extension ColdSignal {
998998 }
999999}
10001000
1001+ /// An overloaded function that combines the values of up to 10 signals, in the
1002+ /// manner described by ColdSignal.combineLatestWith().
1003+ public func combineLatest< A, B> ( a: ColdSignal < A > , b: ColdSignal < B > ) -> ColdSignal < ( A , B ) > {
1004+ return a. combineLatestWith ( b)
1005+ }
1006+
1007+ public func combineLatest< A, B, C> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > ) -> ColdSignal < ( A , B , C ) > {
1008+ return combineLatest ( a, b)
1009+ . combineLatestWith ( c)
1010+ . map ( repack)
1011+ }
1012+
1013+ public func combineLatest< A, B, C, D> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > ) -> ColdSignal < ( A , B , C , D ) > {
1014+ return combineLatest ( a, b, c)
1015+ . combineLatestWith ( d)
1016+ . map ( repack)
1017+ }
1018+
1019+ 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 ) > {
1020+ return combineLatest ( a, b, c, d)
1021+ . combineLatestWith ( e)
1022+ . map ( repack)
1023+ }
1024+
1025+ 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 ) > {
1026+ return combineLatest ( a, b, c, d, e)
1027+ . combineLatestWith ( f)
1028+ . map ( repack)
1029+ }
1030+
1031+ 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 ) > {
1032+ return combineLatest ( a, b, c, d, e, f)
1033+ . combineLatestWith ( g)
1034+ . map ( repack)
1035+ }
1036+
1037+ 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 ) > {
1038+ return combineLatest ( a, b, c, d, e, f, g)
1039+ . combineLatestWith ( h)
1040+ . map ( repack)
1041+ }
1042+
1043+ 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 ) > {
1044+ return combineLatest ( a, b, c, d, e, f, g, h)
1045+ . combineLatestWith ( i)
1046+ . map ( repack)
1047+ }
1048+
1049+ 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 ) > {
1050+ return combineLatest ( a, b, c, d, e, f, g, h, i)
1051+ . combineLatestWith ( j)
1052+ . map ( repack)
1053+ }
1054+
1055+ /// An overloaded function that zips the values of up to 10 signals, in the
1056+ /// manner described by ColdSignal.zipWith().
1057+ public func zip< A, B> ( a: ColdSignal < A > , b: ColdSignal < B > ) -> ColdSignal < ( A , B ) > {
1058+ return a. zipWith ( b)
1059+ }
1060+
1061+ public func zip< A, B, C> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > ) -> ColdSignal < ( A , B , C ) > {
1062+ return zip ( a, b)
1063+ . zipWith ( c)
1064+ . map ( repack)
1065+ }
1066+
1067+ public func zip< A, B, C, D> ( a: ColdSignal < A > , b: ColdSignal < B > , c: ColdSignal < C > , d: ColdSignal < D > ) -> ColdSignal < ( A , B , C , D ) > {
1068+ return zip ( a, b, c)
1069+ . zipWith ( d)
1070+ . map ( repack)
1071+ }
1072+
1073+ 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 ) > {
1074+ return zip ( a, b, c, d)
1075+ . zipWith ( e)
1076+ . map ( repack)
1077+ }
1078+
1079+ 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 ) > {
1080+ return zip ( a, b, c, d, e)
1081+ . zipWith ( f)
1082+ . map ( repack)
1083+ }
1084+
1085+ 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 ) > {
1086+ return zip ( a, b, c, d, e, f)
1087+ . zipWith ( g)
1088+ . map ( repack)
1089+ }
1090+
1091+ 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 ) > {
1092+ return zip ( a, b, c, d, e, f, g)
1093+ . zipWith ( h)
1094+ . map ( repack)
1095+ }
1096+
1097+ 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 ) > {
1098+ return zip ( a, b, c, d, e, f, g, h)
1099+ . zipWith ( i)
1100+ . map ( repack)
1101+ }
1102+
1103+ 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 ) > {
1104+ return zip ( a, b, c, d, e, f, g, h, i)
1105+ . zipWith ( j)
1106+ . map ( repack)
1107+ }
1108+
10011109/// Blocking methods for receiving values.
10021110extension ColdSignal {
10031111 /// Starts the receiver, then returns the first value received.
0 commit comments