override def toAvro()

in elitzur-avro/src/main/scala/com/spotify/elitzur/converters/avro/AvroConverter.scala [317:338]


  override def toAvro(v: T, schema: Schema): Any = {
    val ps = caseClass.parameters
    var i = 0
    val builder = new GenericRecordBuilder(schema)

    while (i < ps.length) {
      val p = ps(i)
      val deref = p.dereference(v)

      val fieldName = if (schema.getField(p.label) == null) {
        SharedUtils.camelToSnake(p.label)
      } else {
        p.label
      }

      builder.set(
        fieldName,
        p.typeclass.toAvro(deref, schema.getField(fieldName).schema()))
      i += 1
    }
    builder.build()
  }