6

我有一个能够持久化任何类型的方法,只要该类型有一个io.circe.Encoder[A]实例,如下所示:

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

现在在测试这个时,我可以创建任何旧的案例类,或者密封特征下的案例类集,创建一个 ADT,并使用自动类型类派生来创建EncoderScalaCheckArbitrary实例,这使得测试非常好.

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

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

4

0 回答 0