我在API上公开了一个如下所示的方法:
def read[T](implicit decoder: Decoder[T]): T
用户可以携带他们喜欢的任何T
,我的代码将尝试将json结果解析为T
。
我要解决的问题是,任何用户还必须导入io.circe.generic.auto._
才能使其正常工作并自动派生Decoder[T]
。
有什么办法可以更改我的API,以避免用户不得不进行此导入?
答案 0 :(得分:0)
可能是在库中进行的-隐式对象很容易发生冲突,给用户带来麻烦。
在Typelevel中,Scala 4可以使用customizable imports-它没有降落在Scala 2.12中,但(经过多次迭代)降落了landed on 2.13。您可以建议您的用户在2.13.0发布后始终在范围内使用某些隐式方法,但这对他们而言是有意识的决定。