syntax

io.circe.config.syntax$
object syntax

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.

Attributes

Example:
scala> import io.circe.generic.auto._
scala> import io.circe.config.syntax._
scala> import scala.concurrent.duration.FiniteDuration
scala> case class ServerSettings(port: Int, host: String, timeout: FiniteDuration)
scala> val config = com.typesafe.config.ConfigFactory.parseString("port = 7357, host = localhost, timeout = 5 s")
scala> config.as[ServerSettings]
res0: Either[io.circe.Error, ServerSettings] = Right(ServerSettings(7357,localhost,5 seconds))
Source:
syntax.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
syntax.type

Members list

Concise view

Type members

Classlikes

final implicit class CirceConfigOps(val config: Config) extends AnyVal

Enriches com.typesafe.config.Config instances with methods to decode to a specific type.

Enriches com.typesafe.config.Config instances with methods to decode to a specific type.

Attributes

Source:
syntax.scala
Graph
Supertypes
class AnyVal
trait Matchable
class Any

Implicits

Implicits

final implicit def CirceConfigOps(config: Config): CirceConfigOps

Enriches com.typesafe.config.Config instances with methods to decode to a specific type.

Enriches com.typesafe.config.Config instances with methods to decode to a specific type.

Attributes

Source:
syntax.scala
implicit val configDecoder: Decoder[Config]

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.

Attributes

See also:

configValueDecoder for decoding any circe JSON AST.

Example:
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()))
Source:
syntax.scala
implicit val configValueDecoder: Decoder[ConfigValue]

Decoder for converting io.circe.Json to com.typesafe.config.ConfigValue.

Maps any circe JSON AST to the Typesafe Config AST.

Attributes

See also:

configDecoder for decoding circe JSON objects to a Typesafe Config instance.

Example:
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}))
Source:
syntax.scala

Decoder for reading duration format.

Decoder for reading duration format.

Attributes

Example:
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)
Source:
syntax.scala
implicit val memorySizeDecoder: Decoder[ConfigMemorySize]

Attributes

Example:
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))
Source:
syntax.scala
implicit val periodDecoder: Decoder[Period]

Decoder for reading period format.

Decoder for reading period format.

Attributes

Example:
scala> import io.circe.Json
scala> import io.circe.config.syntax._
scala> import java.time.Period
scala> periodDecoder.decodeJson(Json.fromString("1 day"))
res0: io.circe.Decoder.Result[Period] = Right(P1D)
scala> periodDecoder.decodeJson(Json.fromString("3 y"))
res1: io.circe.Decoder.Result[Period] = Right(P3Y)
scala> Json.fromString("24 months").as[Period]
res2: io.circe.Decoder.Result[Period] = Right(P24M)
Source:
syntax.scala