in datastore/src/main/scala/magnolify/datastore/EntityType.scala [282:309]
implicit def efIterable[T, C[_]](implicit
f: EntityField[T],
kf: KeyField[C[T]],
ti: C[T] => Iterable[T],
fc: FactoryCompat[T, C[T]]
): EntityField[C[T]] =
new EntityField[C[T]] {
override val keyField: KeyField[C[T]] = kf
override def from(v: Value)(cm: CaseMapper): C[T] = {
val b = fc.newBuilder
if (v != null) {
b ++= v.getArrayValue.getValuesList.asScala.iterator.map(f.from(_)(cm))
}
b.result()
}
override def to(v: C[T])(cm: CaseMapper): Value.Builder =
if (v.isEmpty) {
null
} else {
Value
.newBuilder()
.setArrayValue(
v.foldLeft(ArrayValue.newBuilder())((b, x) => b.addValues(f.to(x)(cm)))
.build()
)
}
}