in parquet/src/main/scala/magnolify/parquet/ParquetField.scala [311:333]
override def buildSchema(cm: CaseMapper, properties: MagnolifyParquetProperties): Type =
Schema.setRepetition(t.schema(cm, properties), Repetition.OPTIONAL)
override protected def isEmpty(v: Option[T]): Boolean = v.forall(t.isEmpty)
override def fieldDocs(cm: CaseMapper): Map[String, String] = t.fieldDocs(cm)
override def typeDoc: Option[String] = None
override def write(c: RecordConsumer, v: Option[T])(
cm: CaseMapper,
properties: MagnolifyParquetProperties
): Unit =
v.foreach(t.writeGroup(c, _)(cm, properties))
override def newConverter(writerSchema: Type): TypeConverter[Option[T]] = {
val buffered = t
.newConverter(writerSchema)
.asInstanceOf[TypeConverter.Buffered[T]]
.withRepetition(Repetition.OPTIONAL)
new TypeConverter.Delegate[T, Option[T]](buffered) {
override def get: Option[T] = inner.get(_.headOption)
}
}