Packages

package codec

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. trait AbstractDIConfigReader[A] extends AnyRef
  2. trait DIConfigReader[A] extends AbstractDIConfigReader[A]

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

    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]
    }
  3. sealed trait LowPriorityDIConfigReaderInstances extends AnyRef
  4. trait LowPriorityDIConfigReaderInstances2 extends LowPriorityDIConfigReaderInstances
    Attributes
    protected
  5. final class PureconfigAutoDerive[A] extends AnyVal

    Derive pureconfig.ConfigReader for A and for its fields recursively with pureconfig-magnolia

    Derive pureconfig.ConfigReader for A and for its fields recursively with pureconfig-magnolia

    This differs from just using pureconfig.module.magnolia.auto.reader.exportReader by using different configuration, defined in PureconfigInstances, specifically:

    1. Field name remapping is disabled, camelCase fields will remain camelCase, not kebab-case 2. Sealed traits are rendered as in circe, using a wrapper object with a single field, instead of using a type field. 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 } }
      ]
    }
  6. trait PureconfigInstances extends AnyRef

Ungrouped