izumi.distage.config.codec.DIConfigReader
See theDIConfigReader companion object
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 f 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
- Companion:
- object
- Graph
- Supertypes