DIConfigReader

izumi.distage.config.codec.DIConfigReader
See theDIConfigReader companion object
trait DIConfigReader[A]

Config reader that uses a pureconfig.ConfigReader implicit instance for a type to decode it from Typesafe Config.

Always automatically derives a codec if it's not available.

Automatic derivation will use camelCase fields, NOT kebab-case fields, as in default pureconfig. It also overrides pureconfig's default type field type discriminator for sealed traits, instead using a circe-like format with a single-key object.

Example:

 sealed trait AorB
 final case class A(a: Int) extends AorB
 final case class B(b: String) extends AorB

 final case class Config(values: List[AorB])

In config:

 config {
   values = [
     { A { a = 123 } },
     { B { b = cba } }
   ]
 }

Auto-derivation will work without importing pureconfig.generic.auto._ and without any other imports

You may use izumi.distage.config.codec.PureconfigAutoDerive if you want to use DIConfigReader's deriving strategy to derive a standalone pureconfig codec:

 final case class Abc(a: Duration, b: Regex, c: URL)

 object Abc {
   implicit val configReader: pureconfig.ConfigReader[Abc] =
     PureconfigAutoDerive[Abc]
 }

Attributes

Note

on Scala.js DIConfigReader uses io.circe.Decoder instances to decode JSON configs, not HOCON as on JVM

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

final def decodeAppConfig(path: String)(implicit tag: Tag[A]): AppConfig => A
final def decodeAppConfigWithDefault(path: String)(default: => A)(implicit tag: Tag[A]): AppConfig => A
final def flatMap[B](f: A => DIConfigReader[B]): DIConfigReader[B]
final def map[B](f: A => B): DIConfigReader[B]

Inherited methods

final override def decodeConfig(path: String)(config: DistageConfigImpl)(implicit tag: Tag[A]): A

Attributes

Definition Classes
DIConfigReaderPlatformSpecific
Inherited from:
DIConfigReaderPlatformSpecific (hidden)
final override def decodeConfig(config: DistageConfigImpl): Try[A]

Attributes

Definition Classes
DIConfigReaderPlatformSpecific
Inherited from:
DIConfigReaderPlatformSpecific (hidden)
final override def decodeConfigWithDefault(path: String)(default: => A)(config: DistageConfigImpl)(implicit tag: Tag[A]): A

Attributes

Definition Classes
DIConfigReaderPlatformSpecific
Inherited from:
DIConfigReaderPlatformSpecific (hidden)