Использование PureConfig с уточненным? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть следующий файл 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 голосов
/ 05 ноября 2018

Скорее всего, вам не хватает импорта, вероятно, это: import pureconfig.generic.auto._

см. https://pureconfig.github.io/docs/

Если вас интересует, что здесь происходит, вы можете посмотреть на «вывод классов типов»

РЕДАКТИРОВАТЬ: обратите внимание, что сейчас это не имеет ничего общего с уточненными типами, так как ваш код не использует их.

...