Кошки ValidatedNec mapN с типами ошибок класса дел - PullRequest
0 голосов
/ 28 мая 2019

Я хотел бы использовать тип данных Cats ValidatedNec аналогично примеру в документации по Cats для Validated в разделе Аппликативная встреча - в моем случае я выполняю синтаксический анализ String s из файла, проверка по соответствующему регулярному выражению для поля, а затем (для нескольких полей) преобразование в другой тип данных (при условии совпадения регулярного выражения).Однако вместо использования case object s, которые расширяют общую черту для недопустимых результатов (как в примере), я бы хотел использовать case class es (которые расширяют общую черту), чтобы я мог включить контекстную информацию вслучай неудачи.Можно ли сделать это так же просто, как вызвать все методы проверки (поместить результаты в кортеж), как в примере validateForm, и вызвать mapN?Я получаю противоречивые ошибки от Intellij (от IntelliJ, он сообщает мне, что ожидаемые и фактические параметры для mapN совпадают (хотя он все еще помечает это как ошибку); при запуске sbt в командной строке онне разрешает метод mapN. Я использую Scala 2.12.8 и cats 2.0.0-M1. Любая помощь будет признательна!

1 Ответ

0 голосов
/ 28 мая 2019

https://gist.github.com/DmytroMitin/6cf51c3563dba62307a2a256eeb4ebb5


«Ошибки IntelliJ» не имеют значения.

Что касается "ошибок sbt", чтобы заставить mapN работать, проверьте, что у вас есть

import cats.syntax.apply._

Если это по-прежнему не работает, укажите MCVE .

...