in bigquery/src/main/scala/magnolify/bigquery/TableRowType.scala [47:66]
implicit def apply[T: TableRowField]: TableRowType[T] = TableRowType(CaseMapper.identity)
def apply[T](cm: CaseMapper)(implicit f: TableRowField[T]): TableRowType[T] = {
f match {
case r: TableRowField.Record[_] =>
r.fieldSchema(cm) // fail fast on bad annotations
new TableRowType[T] {
private val caseMapper: CaseMapper = cm
@transient override lazy val schema: TableSchema =
new TableSchema().setFields(r.fieldSchema(caseMapper).getFields)
override val selectedFields: Seq[String] = r.fields(cm)
override val description: String = r.fieldSchema(caseMapper).getDescription
override def from(v: TableRow): T = r.from(v)(caseMapper)
override def to(v: T): TableRow = r.to(v)(caseMapper)
}
case _ =>
throw new IllegalArgumentException(s"TableRowType can only be created from Record. Got $f")
}
}