Skip to content

Commit

Permalink
Merge pull request #2261 from circe/asobject
Browse files Browse the repository at this point in the history
Add back some `Encoder.AsObject`
  • Loading branch information
hamnis committed Apr 26, 2024
2 parents f3c820e + 9f2a7fc commit e3d2583
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions modules/tests/shared/src/test/scala-3/io/circe/DerivesSuite.scala
Expand Up @@ -47,17 +47,17 @@ object DerivesSuite {
)
}

case class Wub(x: Long) derives Codec
case class Wub(x: Long) derives Codec.AsObject

object Wub {
implicit val eqWub: Eq[Wub] = Eq.by(_.x)
implicit val arbitraryWub: Arbitrary[Wub] = Arbitrary(Arbitrary.arbitrary[Long].map(Wub(_)))
}

sealed trait Foo derives Codec
sealed trait Foo derives Codec.AsObject
case class Bar(i: Int, s: String) extends Foo
case class Baz(xs: List[String]) extends Foo
case class Bam(w: Wub, d: Double) extends Foo derives Codec
case class Bam(w: Wub, d: Double) extends Foo derives Codec.AsObject

object Bar {
implicit val eqBar: Eq[Bar] = Eq.fromUniversalEquals
Expand Down Expand Up @@ -108,9 +108,9 @@ object DerivesSuite {
)
}

sealed trait RecursiveAdtExample derives Codec
case class BaseAdtExample(a: String) extends RecursiveAdtExample derives Codec
case class NestedAdtExample(r: RecursiveAdtExample) extends RecursiveAdtExample derives Codec
sealed trait RecursiveAdtExample derives Codec.AsObject
case class BaseAdtExample(a: String) extends RecursiveAdtExample derives Codec.AsObject
case class NestedAdtExample(r: RecursiveAdtExample) extends RecursiveAdtExample derives Codec.AsObject

object RecursiveAdtExample {
implicit val eqRecursiveAdtExample: Eq[RecursiveAdtExample] = Eq.fromUniversalEquals
Expand All @@ -126,7 +126,7 @@ object DerivesSuite {
Arbitrary(atDepth(0))
}

case class RecursiveWithOptionExample(o: Option[RecursiveWithOptionExample]) derives Codec
case class RecursiveWithOptionExample(o: Option[RecursiveWithOptionExample]) derives Codec.AsObject

object RecursiveWithOptionExample {
implicit val eqRecursiveWithOptionExample: Eq[RecursiveWithOptionExample] =
Expand Down Expand Up @@ -184,15 +184,15 @@ object DerivesSuite {

given Arbitrary[RecursiveEnumAdt] = Arbitrary(atDepth(0))

sealed trait ADTWithSubTraitExample derives Codec
sealed trait ADTWithSubTraitExample derives Codec.AsObject
sealed trait SubTrait extends ADTWithSubTraitExample
case class TheClass(a: Int) extends SubTrait

object ADTWithSubTraitExample:
given Arbitrary[ADTWithSubTraitExample] = Arbitrary(Arbitrary.arbitrary[Int].map(TheClass.apply))
given Eq[ADTWithSubTraitExample] = Eq.fromUniversalEquals

case class ProductWithTaggedMember(x: ProductWithTaggedMember.TaggedString) derives Codec
case class ProductWithTaggedMember(x: ProductWithTaggedMember.TaggedString) derives Codec.AsObject

object ProductWithTaggedMember:
sealed trait Tag
Expand All @@ -218,7 +218,7 @@ object DerivesSuite {
given Eq[ProductWithTaggedMember] = Eq.fromUniversalEquals

case class Inner[A](field: A) derives Encoder, Decoder
case class Outer(a: Option[Inner[String]]) derives Encoder, Decoder
case class Outer(a: Option[Inner[String]]) derives Encoder.AsObject, Decoder
object Outer:
given Eq[Outer] = Eq.fromUniversalEquals
given Arbitrary[Outer] =
Expand All @@ -230,6 +230,8 @@ class DerivesSuite extends CirceMunitSuite {
import io.circe.syntax._

checkAll("Codec[Box[Wub]]", CodecTests[Box[Wub]].codec)
checkAll("Codec[Box[Long]]", CodecTests[Box[Long]].codec)
// checkAll("Codec[Qux[Long]]", CodecTests[Qux[Long]].codec) Does not compile because Scala 3 requires a `Codec[Long]` for this when you use `derives Codec`
checkAll("Codec[Seq[Foo]]", CodecTests[Seq[Foo]].codec)
checkAll("Codec[Baz]", CodecTests[Baz].codec)
checkAll("Codec[Foo]", CodecTests[Foo].codec)
Expand Down

0 comments on commit e3d2583

Please sign in to comment.