
com.zendesk.scalaflow.sugar.CaseClassOps.scala Maven / Gradle / Ivy
The newest version!
// auto-generated by sbt-boilerplate
package com.zendesk.scalaflow.sugar
import com.google.cloud.dataflow.sdk.Pipeline
import com.google.cloud.dataflow.sdk.coders.{Coder, DelegateCoder, VoidCoder}
import com.google.cloud.dataflow.sdk.coders.DelegateCoder.CodingFunction
import scala.reflect.ClassTag
import scala.reflect.runtime.universe._
import com.zendesk.scalaflow.coders._
trait CaseClassOps {
def caseClassCoder[P <: Product](construct: () => P): Coder[P] = {
val intermediate = VoidCoder.of()
val to = new CodingFunction[P, Void] {
override def apply(p: P) = null
}
val from = new CodingFunction[Void, P] {
override def apply(v: Void) = construct()
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, P <: Product](construct: (V1) => P): Coder[P] = {
val intermediate = implicitly[Coder[V1]]
val to = new CodingFunction[P, V1] {
override def apply(p: P) = p.productElement(0).asInstanceOf[V1]
}
val from = new CodingFunction[V1, P] {
override def apply(v: V1) = construct(v)
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, P <: Product](construct: (V1, V2) => P): Coder[P] = {
val intermediate = new Tuple2Coder[V1, V2]()
val to = new CodingFunction[P, Tuple2[V1, V2]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
Tuple2(v1, v2)
}
}
val from = new CodingFunction[Tuple2[V1, V2], P] {
override def apply(t: Tuple2[V1, V2]) = {
construct(t._1, t._2)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, P <: Product](construct: (V1, V2, V3) => P): Coder[P] = {
val intermediate = new Tuple3Coder[V1, V2, V3]()
val to = new CodingFunction[P, Tuple3[V1, V2, V3]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
Tuple3(v1, v2, v3)
}
}
val from = new CodingFunction[Tuple3[V1, V2, V3], P] {
override def apply(t: Tuple3[V1, V2, V3]) = {
construct(t._1, t._2, t._3)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, P <: Product](construct: (V1, V2, V3, V4) => P): Coder[P] = {
val intermediate = new Tuple4Coder[V1, V2, V3, V4]()
val to = new CodingFunction[P, Tuple4[V1, V2, V3, V4]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
Tuple4(v1, v2, v3, v4)
}
}
val from = new CodingFunction[Tuple4[V1, V2, V3, V4], P] {
override def apply(t: Tuple4[V1, V2, V3, V4]) = {
construct(t._1, t._2, t._3, t._4)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, P <: Product](construct: (V1, V2, V3, V4, V5) => P): Coder[P] = {
val intermediate = new Tuple5Coder[V1, V2, V3, V4, V5]()
val to = new CodingFunction[P, Tuple5[V1, V2, V3, V4, V5]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
Tuple5(v1, v2, v3, v4, v5)
}
}
val from = new CodingFunction[Tuple5[V1, V2, V3, V4, V5], P] {
override def apply(t: Tuple5[V1, V2, V3, V4, V5]) = {
construct(t._1, t._2, t._3, t._4, t._5)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6) => P): Coder[P] = {
val intermediate = new Tuple6Coder[V1, V2, V3, V4, V5, V6]()
val to = new CodingFunction[P, Tuple6[V1, V2, V3, V4, V5, V6]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
Tuple6(v1, v2, v3, v4, v5, v6)
}
}
val from = new CodingFunction[Tuple6[V1, V2, V3, V4, V5, V6], P] {
override def apply(t: Tuple6[V1, V2, V3, V4, V5, V6]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7) => P): Coder[P] = {
val intermediate = new Tuple7Coder[V1, V2, V3, V4, V5, V6, V7]()
val to = new CodingFunction[P, Tuple7[V1, V2, V3, V4, V5, V6, V7]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
Tuple7(v1, v2, v3, v4, v5, v6, v7)
}
}
val from = new CodingFunction[Tuple7[V1, V2, V3, V4, V5, V6, V7], P] {
override def apply(t: Tuple7[V1, V2, V3, V4, V5, V6, V7]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8) => P): Coder[P] = {
val intermediate = new Tuple8Coder[V1, V2, V3, V4, V5, V6, V7, V8]()
val to = new CodingFunction[P, Tuple8[V1, V2, V3, V4, V5, V6, V7, V8]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
Tuple8(v1, v2, v3, v4, v5, v6, v7, v8)
}
}
val from = new CodingFunction[Tuple8[V1, V2, V3, V4, V5, V6, V7, V8], P] {
override def apply(t: Tuple8[V1, V2, V3, V4, V5, V6, V7, V8]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9) => P): Coder[P] = {
val intermediate = new Tuple9Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9]()
val to = new CodingFunction[P, Tuple9[V1, V2, V3, V4, V5, V6, V7, V8, V9]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
Tuple9(v1, v2, v3, v4, v5, v6, v7, v8, v9)
}
}
val from = new CodingFunction[Tuple9[V1, V2, V3, V4, V5, V6, V7, V8, V9], P] {
override def apply(t: Tuple9[V1, V2, V3, V4, V5, V6, V7, V8, V9]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10) => P): Coder[P] = {
val intermediate = new Tuple10Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10]()
val to = new CodingFunction[P, Tuple10[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
Tuple10(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)
}
}
val from = new CodingFunction[Tuple10[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10], P] {
override def apply(t: Tuple10[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11) => P): Coder[P] = {
val intermediate = new Tuple11Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11]()
val to = new CodingFunction[P, Tuple11[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
Tuple11(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
}
}
val from = new CodingFunction[Tuple11[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11], P] {
override def apply(t: Tuple11[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12) => P): Coder[P] = {
val intermediate = new Tuple12Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12]()
val to = new CodingFunction[P, Tuple12[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
Tuple12(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)
}
}
val from = new CodingFunction[Tuple12[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12], P] {
override def apply(t: Tuple12[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13) => P): Coder[P] = {
val intermediate = new Tuple13Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13]()
val to = new CodingFunction[P, Tuple13[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
Tuple13(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
}
}
val from = new CodingFunction[Tuple13[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13], P] {
override def apply(t: Tuple13[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14) => P): Coder[P] = {
val intermediate = new Tuple14Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14]()
val to = new CodingFunction[P, Tuple14[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
Tuple14(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)
}
}
val from = new CodingFunction[Tuple14[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14], P] {
override def apply(t: Tuple14[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15) => P): Coder[P] = {
val intermediate = new Tuple15Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15]()
val to = new CodingFunction[P, Tuple15[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
Tuple15(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)
}
}
val from = new CodingFunction[Tuple15[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15], P] {
override def apply(t: Tuple15[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16) => P): Coder[P] = {
val intermediate = new Tuple16Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16]()
val to = new CodingFunction[P, Tuple16[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
Tuple16(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)
}
}
val from = new CodingFunction[Tuple16[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16], P] {
override def apply(t: Tuple16[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, V17: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17) => P): Coder[P] = {
val intermediate = new Tuple17Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17]()
val to = new CodingFunction[P, Tuple17[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
val v17 = p.productElement(16).asInstanceOf[V17]
Tuple17(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17)
}
}
val from = new CodingFunction[Tuple17[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17], P] {
override def apply(t: Tuple17[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16, t._17)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, V17: Coder, V18: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18) => P): Coder[P] = {
val intermediate = new Tuple18Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18]()
val to = new CodingFunction[P, Tuple18[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
val v17 = p.productElement(16).asInstanceOf[V17]
val v18 = p.productElement(17).asInstanceOf[V18]
Tuple18(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)
}
}
val from = new CodingFunction[Tuple18[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18], P] {
override def apply(t: Tuple18[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16, t._17, t._18)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, V17: Coder, V18: Coder, V19: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19) => P): Coder[P] = {
val intermediate = new Tuple19Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19]()
val to = new CodingFunction[P, Tuple19[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
val v17 = p.productElement(16).asInstanceOf[V17]
val v18 = p.productElement(17).asInstanceOf[V18]
val v19 = p.productElement(18).asInstanceOf[V19]
Tuple19(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19)
}
}
val from = new CodingFunction[Tuple19[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19], P] {
override def apply(t: Tuple19[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16, t._17, t._18, t._19)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, V17: Coder, V18: Coder, V19: Coder, V20: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20) => P): Coder[P] = {
val intermediate = new Tuple20Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20]()
val to = new CodingFunction[P, Tuple20[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
val v17 = p.productElement(16).asInstanceOf[V17]
val v18 = p.productElement(17).asInstanceOf[V18]
val v19 = p.productElement(18).asInstanceOf[V19]
val v20 = p.productElement(19).asInstanceOf[V20]
Tuple20(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)
}
}
val from = new CodingFunction[Tuple20[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20], P] {
override def apply(t: Tuple20[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16, t._17, t._18, t._19, t._20)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, V17: Coder, V18: Coder, V19: Coder, V20: Coder, V21: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21) => P): Coder[P] = {
val intermediate = new Tuple21Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21]()
val to = new CodingFunction[P, Tuple21[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
val v17 = p.productElement(16).asInstanceOf[V17]
val v18 = p.productElement(17).asInstanceOf[V18]
val v19 = p.productElement(18).asInstanceOf[V19]
val v20 = p.productElement(19).asInstanceOf[V20]
val v21 = p.productElement(20).asInstanceOf[V21]
Tuple21(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)
}
}
val from = new CodingFunction[Tuple21[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21], P] {
override def apply(t: Tuple21[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16, t._17, t._18, t._19, t._20, t._21)
}
}
DelegateCoder.of(intermediate, to, from)
}
def caseClassCoder[V1: Coder, V2: Coder, V3: Coder, V4: Coder, V5: Coder, V6: Coder, V7: Coder, V8: Coder, V9: Coder, V10: Coder, V11: Coder, V12: Coder, V13: Coder, V14: Coder, V15: Coder, V16: Coder, V17: Coder, V18: Coder, V19: Coder, V20: Coder, V21: Coder, V22: Coder, P <: Product](construct: (V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22) => P): Coder[P] = {
val intermediate = new Tuple22Coder[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22]()
val to = new CodingFunction[P, Tuple22[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22]] {
override def apply(p: P) = {
val v1 = p.productElement(0).asInstanceOf[V1]
val v2 = p.productElement(1).asInstanceOf[V2]
val v3 = p.productElement(2).asInstanceOf[V3]
val v4 = p.productElement(3).asInstanceOf[V4]
val v5 = p.productElement(4).asInstanceOf[V5]
val v6 = p.productElement(5).asInstanceOf[V6]
val v7 = p.productElement(6).asInstanceOf[V7]
val v8 = p.productElement(7).asInstanceOf[V8]
val v9 = p.productElement(8).asInstanceOf[V9]
val v10 = p.productElement(9).asInstanceOf[V10]
val v11 = p.productElement(10).asInstanceOf[V11]
val v12 = p.productElement(11).asInstanceOf[V12]
val v13 = p.productElement(12).asInstanceOf[V13]
val v14 = p.productElement(13).asInstanceOf[V14]
val v15 = p.productElement(14).asInstanceOf[V15]
val v16 = p.productElement(15).asInstanceOf[V16]
val v17 = p.productElement(16).asInstanceOf[V17]
val v18 = p.productElement(17).asInstanceOf[V18]
val v19 = p.productElement(18).asInstanceOf[V19]
val v20 = p.productElement(19).asInstanceOf[V20]
val v21 = p.productElement(20).asInstanceOf[V21]
val v22 = p.productElement(21).asInstanceOf[V22]
Tuple22(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)
}
}
val from = new CodingFunction[Tuple22[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22], P] {
override def apply(t: Tuple22[V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22]) = {
construct(t._1, t._2, t._3, t._4, t._5, t._6, t._7, t._8, t._9, t._10, t._11, t._12, t._13, t._14, t._15, t._16, t._17, t._18, t._19, t._20, t._21, t._22)
}
}
DelegateCoder.of(intermediate, to, from)
}
}
object CaseClassOps extends CaseClassOps
© 2015 - 2025 Weber Informatics LLC | Privacy Policy