将 PureConfig 与 Refined 一起使用?
Using PureConfig with Refined?
我有以下配置文件:
connection.port = 8080
connection.interface = "127.0.0.1"
我在阅读此文件时尝试使用精炼和精炼的纯配置。我有以下 class:
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)
}
}
这是阅读下面的案例class:
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)
我真的不确定如何创建这样的隐式?
很可能你错过了一个进口可能是这个:
import pureconfig.generic.auto._
见https://pureconfig.github.io/docs/
如果您对这里发生的事情感兴趣,可以查看 "typeclass derivation"
编辑:请注意,现在这与精炼类型无关,因为您截取的代码没有使用它们。
我有以下配置文件:
connection.port = 8080
connection.interface = "127.0.0.1"
我在阅读此文件时尝试使用精炼和精炼的纯配置。我有以下 class:
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)
}
}
这是阅读下面的案例class:
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)
我真的不确定如何创建这样的隐式?
很可能你错过了一个进口可能是这个:
import pureconfig.generic.auto._
见https://pureconfig.github.io/docs/
如果您对这里发生的事情感兴趣,可以查看 "typeclass derivation"
编辑:请注意,现在这与精炼类型无关,因为您截取的代码没有使用它们。