Packages

package codec

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. sealed trait ConfigMetaBasicType extends AnyRef
  2. sealed trait ConfigMetaType extends AnyRef
  3. final case class ConfigMetaTypeId(owner: Option[String], short: String, typeArguments: Seq[ConfigMetaTypeId]) extends Product with Serializable
  4. trait DIConfigMeta[T] extends AnyRef

    Type information for generated config codec, used to generate JSON Schemas for config in ConfigWriter role.

    Type information for generated config codec, used to generate JSON Schemas for config in ConfigWriter role.

    See also

    izumi.distage.roles.bundled.ConfigWriter

    izumi.distage.roles.bundled.JsonSchemaGenerator

    izumi.distage.config.model.ConfigDoc

  5. 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]
    }
  6. sealed trait LowPriorityDIConfigMetaInstances extends AnyRef
  7. sealed trait LowPriorityDIConfigReaderInstances extends AnyRef
  8. final class MetaAutoDerive[A] extends AnyVal
  9. 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 } }
      ]
    }

Ungrouped