def parseAvro: Any => Any =()

in elitzur-avro/src/main/scala/com/spotify/elitzur/converters/avro/dynamic/DynamicAccessorCompanion.scala [54:75]


  def parseAvro: Any => Any = (v: Any) => parseUnsafe(preParserProcessor(v))

  // TODO: Optimize the method below by introducing changes to Elitzur-Core to allow non-implicit
  //  driven wiring of Validators
  //scalastyle:off line.size.limit
  private[dynamic] def getValidator(modifiers: List[ValidatorOp])(implicit m: MetricsReporter): Validator[Any] = {
  //scalastyle:on line.size.limit
    modifiers match {
      case Nil => implicitly[Validator[LT]].asInstanceOf[Validator[Any]]
      case OptionValidatorOp :: Nil => implicitly[Validator[Option[LT]]]
        .asInstanceOf[Validator[Any]]
      case ArrayValidatorOp :: Nil => implicitly[Validator[Seq[LT]]]
        .asInstanceOf[Validator[Any]]
      case ArrayValidatorOp :: OptionValidatorOp :: Nil => implicitly[Validator[Seq[Option[LT]]]]
        .asInstanceOf[Validator[Any]]
      case OptionValidatorOp :: ArrayValidatorOp :: Nil => implicitly[Validator[Option[Seq[LT]]]]
        .asInstanceOf[Validator[Any]]
      case OptionValidatorOp :: ArrayValidatorOp :: OptionValidatorOp :: Nil =>
        implicitly[Validator[Option[Seq[Option[LT]]]]].asInstanceOf[Validator[Any]]
      case _ => throw new Exception(s"Unsupported validator operation: ${modifiers.mkString(",")}")
    }
  }