Автоматически получать экземпляры для запечатанного ADT предсказуемо - PullRequest
1 голос
/ 01 февраля 2020

Можно ли автоматически создавать экземпляры для закрытых ADT?

Мне удалось создать с использованием библиотеки scalacheck-shapeless , но она создает случайные экземпляры для типов сумм. Я хотел бы создать каждый экземпляр для типа суммы предсказуемо.

Например:

sealed trait Base
case class BaseIntString(i: Int, s: String) extends Base
case class BaseDoubleBoolean(d: Double, b: Boolean) extends Base

Вопрос: Программа должна автоматически получить один экземпляр для BaseIntString и один для BaseDoubleBoolean предсказуемо.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете написать свое собственное происхождение от поколения, используя бесформенное, как описано здесь:

Также, есть пример получения структурного сравнения экземпляра класса типов с использованием этого руководства:

https://github.com/ivan71kmayshan27/ShapelesDerivationExample

Возможно, это выглядит как что вы хотите, вы можете принять участие в деривации и вставить туда свою собственную логику c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...