private def aux2[T, Repr]()

in avro/src/main/scala/magnolify/avro/AvroType.scala [189:210]


  private def aux2[T, Repr](tpe: Schema.Type)(f: Repr => T)(g: T => Repr): AvroField[T] =
    aux[T, Repr, Repr](tpe)(f)(g)

  private def id[T](tpe: Schema.Type): AvroField[T] = aux[T, T, T](tpe)(identity)(identity)

  implicit val afNull: AvroField[Null] = aux2[Null, Null](Schema.Type.NULL)(_ => null)(_ => null)
  implicit val afBoolean: AvroField[Boolean] = id[Boolean](Schema.Type.BOOLEAN)
  implicit val afInt: AvroField[Int] = id[Int](Schema.Type.INT)
  implicit val afLong: AvroField[Long] = id[Long](Schema.Type.LONG)
  implicit val afFloat: AvroField[Float] = id[Float](Schema.Type.FLOAT)
  implicit val afDouble: AvroField[Double] = id[Double](Schema.Type.DOUBLE)
  implicit val afByteBuffer: AvroField[ByteBuffer] = new Aux[ByteBuffer, ByteBuffer, ByteBuffer] {
    override protected def buildSchema(cm: CaseMapper): Schema = Schema.create(Schema.Type.BYTES)
    // `JacksonUtils.toJson` expects `Array[Byte]` for `BYTES` defaults
    override def makeDefault(d: ByteBuffer)(cm: CaseMapper): Array[Byte] = d.array()
    // copy to avoid issue in case original buffer is reused
    override def from(v: ByteBuffer)(cm: CaseMapper): ByteBuffer = {
      val ptr = v.asReadOnlyBuffer()
      ByteBuffer.allocate(ptr.remaining()).put(ptr)
    }
    override def to(v: ByteBuffer)(cm: CaseMapper): ByteBuffer = v
  }