
generated.CaseClassReads.scala Maven / Gradle / Ivy
package play.jsonext
import play.api.libs.json.{Reads, JsPath, JsValue, JsResult}
import play.api.libs.functional.{FunctionalCanBuild, ~}
object CaseClassReads {
private[this] val G: FunctionalCanBuild[Reads] =
FunctionalCanBuild.functionalCanBuildApplicative[Reads]
def apply1[A1, Z](f: A1 => Z)(key1: String)(implicit A1: Reads[A1]): Reads[Z] =
Reads.at(JsPath \ key1)(A1).map(f)
def apply[A1, Z](f: A1 => Z)(key1: String)(implicit A1: Reads[A1]): Reads[Z] =
apply1[A1, Z](f)(key1)(A1)
def apply2[A1, A2, Z](f: (A1, A2) => Z)(key1: String, key2: String)(implicit A1: Reads[A1], A2: Reads[A2]): Reads[Z] =
G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)).map{ case a1 ~ a2 => f(a1, a2)}
def apply[A1, A2, Z](f: (A1, A2) => Z)(key1: String, key2: String)(implicit A1: Reads[A1], A2: Reads[A2]): Reads[Z] =
apply2[A1, A2, Z](f)(key1, key2)(A1, A2)
def apply3[A1, A2, A3, Z](f: (A1, A2, A3) => Z)(key1: String, key2: String, key3: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3]): Reads[Z] =
G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)).map{ case a1 ~ a2 ~ a3 => f(a1, a2, a3)}
def apply[A1, A2, A3, Z](f: (A1, A2, A3) => Z)(key1: String, key2: String, key3: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3]): Reads[Z] =
apply3[A1, A2, A3, Z](f)(key1, key2, key3)(A1, A2, A3)
def apply4[A1, A2, A3, A4, Z](f: (A1, A2, A3, A4) => Z)(key1: String, key2: String, key3: String, key4: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4]): Reads[Z] =
G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)).map{ case a1 ~ a2 ~ a3 ~ a4 => f(a1, a2, a3, a4)}
def apply[A1, A2, A3, A4, Z](f: (A1, A2, A3, A4) => Z)(key1: String, key2: String, key3: String, key4: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4]): Reads[Z] =
apply4[A1, A2, A3, A4, Z](f)(key1, key2, key3, key4)(A1, A2, A3, A4)
def apply5[A1, A2, A3, A4, A5, Z](f: (A1, A2, A3, A4, A5) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5]): Reads[Z] =
G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 => f(a1, a2, a3, a4, a5)}
def apply[A1, A2, A3, A4, A5, Z](f: (A1, A2, A3, A4, A5) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5]): Reads[Z] =
apply5[A1, A2, A3, A4, A5, Z](f)(key1, key2, key3, key4, key5)(A1, A2, A3, A4, A5)
def apply6[A1, A2, A3, A4, A5, A6, Z](f: (A1, A2, A3, A4, A5, A6) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6]): Reads[Z] =
G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 => f(a1, a2, a3, a4, a5, a6)}
def apply[A1, A2, A3, A4, A5, A6, Z](f: (A1, A2, A3, A4, A5, A6) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6]): Reads[Z] =
apply6[A1, A2, A3, A4, A5, A6, Z](f)(key1, key2, key3, key4, key5, key6)(A1, A2, A3, A4, A5, A6)
def apply7[A1, A2, A3, A4, A5, A6, A7, Z](f: (A1, A2, A3, A4, A5, A6, A7) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7]): Reads[Z] =
G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 => f(a1, a2, a3, a4, a5, a6, a7)}
def apply[A1, A2, A3, A4, A5, A6, A7, Z](f: (A1, A2, A3, A4, A5, A6, A7) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7]): Reads[Z] =
apply7[A1, A2, A3, A4, A5, A6, A7, Z](f)(key1, key2, key3, key4, key5, key6, key7)(A1, A2, A3, A4, A5, A6, A7)
def apply8[A1, A2, A3, A4, A5, A6, A7, A8, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8]): Reads[Z] =
G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 => f(a1, a2, a3, a4, a5, a6, a7, a8)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8]): Reads[Z] =
apply8[A1, A2, A3, A4, A5, A6, A7, A8, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8)(A1, A2, A3, A4, A5, A6, A7, A8)
def apply9[A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9]): Reads[Z] =
G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9]): Reads[Z] =
apply9[A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9)(A1, A2, A3, A4, A5, A6, A7, A8, A9)
def apply10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10]): Reads[Z] =
G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10]): Reads[Z] =
apply10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
def apply11[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11]): Reads[Z] =
apply11[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
def apply12[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12]): Reads[Z] =
apply12[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
def apply13[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13]): Reads[Z] =
apply13[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
def apply14[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14]): Reads[Z] =
apply14[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
def apply15[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15]): Reads[Z] =
apply15[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)
def apply16[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16]): Reads[Z] =
apply16[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)
def apply17[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)), Reads.at[A17](JsPath \ key17)(A17)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 ~ a17 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17]): Reads[Z] =
apply17[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)
def apply18[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)), Reads.at[A17](JsPath \ key17)(A17)), Reads.at[A18](JsPath \ key18)(A18)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 ~ a17 ~ a18 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18]): Reads[Z] =
apply18[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)
def apply19[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)), Reads.at[A17](JsPath \ key17)(A17)), Reads.at[A18](JsPath \ key18)(A18)), Reads.at[A19](JsPath \ key19)(A19)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 ~ a17 ~ a18 ~ a19 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19]): Reads[Z] =
apply19[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19)
def apply20[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String, key20: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19], A20: Reads[A20]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)), Reads.at[A17](JsPath \ key17)(A17)), Reads.at[A18](JsPath \ key18)(A18)), Reads.at[A19](JsPath \ key19)(A19)), Reads.at[A20](JsPath \ key20)(A20)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 ~ a17 ~ a18 ~ a19 ~ a20 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String, key20: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19], A20: Reads[A20]): Reads[Z] =
apply20[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20)
def apply21[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String, key20: String, key21: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19], A20: Reads[A20], A21: Reads[A21]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)), Reads.at[A17](JsPath \ key17)(A17)), Reads.at[A18](JsPath \ key18)(A18)), Reads.at[A19](JsPath \ key19)(A19)), Reads.at[A20](JsPath \ key20)(A20)), Reads.at[A21](JsPath \ key21)(A21)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 ~ a17 ~ a18 ~ a19 ~ a20 ~ a21 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String, key20: String, key21: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19], A20: Reads[A20], A21: Reads[A21]): Reads[Z] =
apply21[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20, key21)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21)
def apply22[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String, key20: String, key21: String, key22: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19], A20: Reads[A20], A21: Reads[A21], A22: Reads[A22]): Reads[Z] =
G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(G(Reads.at[A1](JsPath \ key1)(A1), Reads.at[A2](JsPath \ key2)(A2)), Reads.at[A3](JsPath \ key3)(A3)), Reads.at[A4](JsPath \ key4)(A4)), Reads.at[A5](JsPath \ key5)(A5)), Reads.at[A6](JsPath \ key6)(A6)), Reads.at[A7](JsPath \ key7)(A7)), Reads.at[A8](JsPath \ key8)(A8)), Reads.at[A9](JsPath \ key9)(A9)), Reads.at[A10](JsPath \ key10)(A10)), Reads.at[A11](JsPath \ key11)(A11)), Reads.at[A12](JsPath \ key12)(A12)), Reads.at[A13](JsPath \ key13)(A13)), Reads.at[A14](JsPath \ key14)(A14)), Reads.at[A15](JsPath \ key15)(A15)), Reads.at[A16](JsPath \ key16)(A16)), Reads.at[A17](JsPath \ key17)(A17)), Reads.at[A18](JsPath \ key18)(A18)), Reads.at[A19](JsPath \ key19)(A19)), Reads.at[A20](JsPath \ key20)(A20)), Reads.at[A21](JsPath \ key21)(A21)), Reads.at[A22](JsPath \ key22)(A22)).map{ case a1 ~ a2 ~ a3 ~ a4 ~ a5 ~ a6 ~ a7 ~ a8 ~ a9 ~ a10 ~ a11 ~ a12 ~ a13 ~ a14 ~ a15 ~ a16 ~ a17 ~ a18 ~ a19 ~ a20 ~ a21 ~ a22 => f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22)}
def apply[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, Z](f: (A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22) => Z)(key1: String, key2: String, key3: String, key4: String, key5: String, key6: String, key7: String, key8: String, key9: String, key10: String, key11: String, key12: String, key13: String, key14: String, key15: String, key16: String, key17: String, key18: String, key19: String, key20: String, key21: String, key22: String)(implicit A1: Reads[A1], A2: Reads[A2], A3: Reads[A3], A4: Reads[A4], A5: Reads[A5], A6: Reads[A6], A7: Reads[A7], A8: Reads[A8], A9: Reads[A9], A10: Reads[A10], A11: Reads[A11], A12: Reads[A12], A13: Reads[A13], A14: Reads[A14], A15: Reads[A15], A16: Reads[A16], A17: Reads[A17], A18: Reads[A18], A19: Reads[A19], A20: Reads[A20], A21: Reads[A21], A22: Reads[A22]): Reads[Z] =
apply22[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, Z](f)(key1, key2, key3, key4, key5, key6, key7, key8, key9, key10, key11, key12, key13, key14, key15, key16, key17, key18, key19, key20, key21, key22)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy