是否有可能自动推导出密封的特质家族/ ADT?

时间:2016-04-20 13:52:45

标签: shapeless scalacheck circe

我有一个能够持久保存任何类型的方法,只要该类型有一个io.circe.Encoder[A]实例,就像这样:

def persist[A](a: A)(implicit ea: Encoder[A]): Boolean

现在在测试时,我可以在密封特征下创建任何旧案例类或一组案例类,创建ADT,并使用自动类型类派生来创建Encoder,并创建ScalaCheck Arbitrary实例,让测试非常好。

是否有可能以某种方式使用Shapeless来创建案例类的任意族(因此自动派生EncoderArbitrary个实例)以便我可以成为确保我的persist方法适用于任何类型?

我不知道从哪里开始,更不用说为此描述一种类型了。

0 个答案:

没有答案