使用PureConfig进行精炼吗?

时间:2018-11-05 13:53:23

标签: scala pureconfig refined

我有以下conf文件:

connection.port = 8080
connection.interface = "127.0.0.1"

我正在尝试在读取此文件时使用精致的和精致的pureconfig。我有以下课程:

import com.api.models.{Config, Connection}
import com.typesafe.config.ConfigFactory
import pureconfig.error.ConfigReaderFailures
import pureconfig.loadConfig

object Configuration {
  val config = ConfigFactory.load()

  val stuff: Either[ConfigReaderFailures, Connection] = loadConfig[Connection](config)



 stuff match {
   case Left(left) => println(left)
   case Right(right) => println(right)
 }
}

这是在阅读下面的案例类:

case class Connection(port: Int, interface: String)

但是,当我尝试编译它时,出现以下错误:

Error:(19, 79) could not find implicit value for parameter reader: pureconfig.Derivation[pureconfig.ConfigReader[com.api.models.Connection]]
  val stuff: Either[ConfigReaderFailures, Connection] = loadConfig[Connection](config)

我真的不确定如何创建这样的隐式吗?

1 个答案:

答案 0 :(得分:1)

您很可能错过了一个进口商品,可能是这个: import pureconfig.generic.auto._

请参阅https://pureconfig.github.io/docs/

如果您对这里发生的事情感兴趣,可以查看“类型类派生”

编辑:请注意,现在这与精炼类型无关,因为您的代码片段没有使用精炼类型。