Enriches com.typesafe.config.Config instances with methods to decode to a specific type.
Decoder for converting io.circe.Json to com.typesafe.config.Config.
Decoder for converting io.circe.Json to com.typesafe.config.Config.
Converts a circe JSON object to a Typesafe Config instance.
scala> import io.circe.Json scala> import com.typesafe.config.Config scala> import io.circe.config.syntax._ scala> val hostJson = Json.fromString("localhost") scala> val portJson = Json.fromInt(8080) scala> val serverJson = Json.obj("host" -> hostJson, "port" -> portJson) scala> configDecoder.decodeJson(Json.obj("host" -> hostJson)) res0: io.circe.Decoder.Result[Config] = Right(Config(SimpleConfigObject({"host":"localhost"}))) scala> serverJson.as[Config] res1: io.circe.Decoder.Result[Config] = Right(Config(SimpleConfigObject({"host":"localhost","port":8080}))) scala> portJson.as[Config] res2: io.circe.Decoder.Result[Config] = Left(DecodingFailure(JSON must be an object, was type NUMBER, List()))
configValueDecoder for decoding any circe JSON AST.
Decoder for converting io.circe.Json to com.typesafe.config.ConfigValue.
Decoder for converting io.circe.Json to com.typesafe.config.ConfigValue.
Maps any circe JSON AST to the Typesafe Config AST.
scala> import io.circe.Json scala> import com.typesafe.config.ConfigValue scala> import io.circe.config.syntax._ scala> val hostJson = Json.fromString("localhost") scala> val portJson = Json.fromInt(8080) scala> val serverJson = Json.obj("host" -> hostJson, "port" -> portJson) scala> configValueDecoder.decodeJson(hostJson) res0: io.circe.Decoder.Result[ConfigValue] = Right(Quoted("localhost")) scala> configValueDecoder.decodeJson(portJson) res1: io.circe.Decoder.Result[ConfigValue] = Right(ConfigLong(8080)) scala> serverJson.as[ConfigValue] res2: io.circe.Decoder.Result[ConfigValue] = Right(SimpleConfigObject({"host":"localhost","port":8080}))
configDecoder for decoding circe JSON objects to a Typesafe Config instance.
Decoder for reading duration formats.
Decoder for reading duration formats.
scala> import io.circe.Json scala> import io.circe.config.syntax._ scala> import scala.concurrent.duration.FiniteDuration scala> durationDecoder.decodeJson(Json.fromString("5 seconds")) res0: io.circe.Decoder.Result[FiniteDuration] = Right(5 seconds) scala> durationDecoder.decodeJson(Json.fromString("1 hour")) res1: io.circe.Decoder.Result[FiniteDuration] = Right(1 hour) scala> Json.fromString("200 ms").as[FiniteDuration] res2: io.circe.Decoder.Result[FiniteDuration] = Right(200 milliseconds)
Decoder for reading memory size in bytes format into a com.typesafe.config.ConfigMemorySize.
Decoder for reading memory size in bytes format into a com.typesafe.config.ConfigMemorySize.
scala> import io.circe.Json scala> import io.circe.config.syntax._ scala> import com.typesafe.config.ConfigMemorySize scala> memorySizeDecoder.decodeJson(Json.fromString("128M")) res0: io.circe.Decoder.Result[ConfigMemorySize] = Right(ConfigMemorySize(134217728)) scala> memorySizeDecoder.decodeJson(Json.fromString("4096 KiB")) res1: io.circe.Decoder.Result[ConfigMemorySize] = Right(ConfigMemorySize(4194304)) scala> Json.fromString("32 GB").as[ConfigMemorySize] res2: io.circe.Decoder.Result[ConfigMemorySize] = Right(ConfigMemorySize(32000000000))
Implicits for decoding Typesafe Config values and instances using circe decoders.
In addition to syntax.durationDecoder and syntax.memorySizeDecoder for reading Typesafe Config specific value formats, this module also provides syntax.CirceConfigOps for decoding loaded configurations.