eed3si9n / sjson-new

a typeclass based JSON codec that's backend independent
Apache License 2.0
36 stars 19 forks source link

remove context bounds and lazy vals. use implicit parameters directly #53

Closed xuwei-k closed 7 years ago

xuwei-k commented 7 years ago
<   implicit def tuple2Format[A1 :JF, A2 :JF]: JF[Tuple2[A1, A2]] = new RootJsonFormat[Tuple2[A1, A2]] {
<     lazy val a1Format = implicitly[JF[A1]]
<     lazy val a2Format = implicitly[JF[A2]]
---
>   implicit def tuple2Format[A1, A2](implicit A1: JF[A1], A2: JF[A2]): JF[Tuple2[A1, A2]] = new RootJsonFormat[Tuple2[A1, A2]] {
52,53c49,50
<       a1Format.write(t._1, builder)
<       a2Format.write(t._2, builder)
---
>       A1.write(t._1, builder)
>       A2.write(t._2, builder)
62c59
<           val xs = Tuple2(a1Format.read(Some(a1), unbuilder), a2Format.read(Some(a2), unbuilder))
---
>           val xs = Tuple2(A1.read(Some(a1), unbuilder), A2.read(Some(a2), unbuilder))
66c63
<           val xs = Tuple2(a1Format.read(None, unbuilder), a2Format.read(None, unbuilder))
---
>           val xs = Tuple2(A1.read(None, unbuilder), A2.read(None, unbuilder))