绕过自动推导-努力与进口

时间:2018-09-13 07:54:38

标签: scala circe

我在API上公开了一个如下所示的方法:

def read[T](implicit decoder: Decoder[T]): T

用户可以携带他们喜欢的任何T,我的代码将尝试将json结果解析为T

我要解决的问题是,任何用户还必须导入io.circe.generic.auto._才能使其正常工作并自动派生Decoder[T]

有什么办法可以更改我的API,以避免用户不得不进行此导入?

1 个答案:

答案 0 :(得分:0)

可能是在库中进行的-隐式对象很容易发生冲突,给用户带来麻烦。

在Typelevel中,Scala 4可以使用customizable imports-它没有降落在Scala 2.12中,但(经过多次迭代)降落了landed on 2.13。您可以建议您的用户在2.13.0发布后始终在范围内使用某些隐式方法,但这对他们而言是有意识的决定。