Skip to content

Commit

Permalink
Add JsonCodec derivation from encoder and decoder
Browse files Browse the repository at this point in the history
  • Loading branch information
guersam committed May 14, 2024
1 parent a1c964e commit ef21ec3
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions zio-json/shared/src/main/scala/zio/json/JsonCodec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,6 @@ final case class JsonCodec[A](encoder: JsonEncoder[A], decoder: JsonDecoder[A])
object JsonCodec extends GeneratedTupleCodecs with CodecLowPriority0 with JsonCodecVersionSpecific {
def apply[A](implicit jsonCodec: JsonCodec[A]): JsonCodec[A] = jsonCodec

def apply[A](encoder: JsonEncoder[A], decoder: JsonDecoder[A]): JsonCodec[A] = new JsonCodec(encoder, decoder)

private def orElseEither[A, B](A: JsonCodec[A], B: JsonCodec[B]): JsonCodec[Either[A, B]] =
JsonCodec(
JsonEncoder.orElseEither[A, B](A.encoder, B.encoder),
Expand Down Expand Up @@ -190,4 +188,7 @@ private[json] trait CodecLowPriority3 { this: JsonCodec.type =>
implicit val uuid: JsonCodec[java.util.UUID] = JsonCodec(JsonEncoder.uuid, JsonDecoder.uuid)

implicit val currency: JsonCodec[java.util.Currency] = JsonCodec(JsonEncoder.currency, JsonDecoder.currency)

implicit def fromEncoderDecoder[A](implicit encoder: JsonEncoder[A], decoder: JsonDecoder[A]): JsonCodec[A] =
new JsonCodec(encoder, decoder)
}

0 comments on commit ef21ec3

Please sign in to comment.