scala-csv-parser icon indicating copy to clipboard operation
scala-csv-parser copied to clipboard

Parser inside polymorphic methods.

Open avasyukhin opened this issue 1 year ago • 0 comments

Can I use Parser inside a polymorphic method like this?

  def readCsv [A] (str: String) : Queue[A] = {
    if (!RFile(str).exists) {
      logger.info(s"File not exists: $str")
      return Queue.empty[A]
    }
    val csv = readFileContent(str)
    Parser.parse[A](csv) match {
      case Left(failure: Failure) => {
        logger.error(s"Syntax error: ${failure.message}")
        Queue.empty[A]
      }
      case Right(list: Seq[A]) => list.to(Queue)
    }
  }

If I try to execute it providing A as some sealed case class, then I got error on compile time:

Couldn't find sh.srv.docsp.services.core.FileHelper.A constructor.
Error while trying to generate zamblauskas.csv.parser.ColumnReads[sh.srv.docsp.services.core.FileHelper.A].
Either fix the error or provide zamblauskas.csv.parser.ColumnReads[sh.srv.docsp.services.core.FileHelper.A].

avasyukhin avatar Apr 18 '23 07:04 avasyukhin