Skip to content

Instantly share code, notes, and snippets.

@mrdziuban
Created November 27, 2023 14:37
Show Gist options
  • Save mrdziuban/5670257e0ec111e517f972a9c8819527 to your computer and use it in GitHub Desktop.
Save mrdziuban/5670257e0ec111e517f972a9c8819527 to your computer and use it in GitHub Desktop.
semiauto-sealed-trait-option3.scala
sealed trait Test1
object Test1 {
case object Member extends Test1
}
sealed trait Test2
object Test2 {
sealed trait SubTrait extends Test2
case object Member extends SubTrait
}
sealed trait Test3
object Test3 {
case class Member() extends Test3
}
// this succeeds and derives a `Decoder[Member.type]` automatically
io.circe.Decoder.derived[Test1]
// this succeeds and derives a `Decoder[SubTrait]` automatically
io.circe.Decoder.derived[Test2]
// this fails because there is no `Decoder[Member]`
io.circe.Decoder.derived[Test3]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment