xuwei-k / unapply   0.1.0

MIT License GitHub

Scala case class unapply compatibility

Scala versions: 3.x 2.13 2.12
Scala.js versions: 1.x
Scala Native versions: 0.5

Scala case class unapply compatibility scala/scala3#2335

build.sbt

libraryDependencies += "com.github.xuwei-k" %% "unapply" % "version"
scala> import unapply.syntax._
import unapply.syntax._

scala> case class A(x: Int, y: String)
class A

scala> A(2, "x").asTuple
val res0: (Int, String) = (2,x)

scala> A(2, "x").asTupleOption
val res1: Option[(Int, String)] = Some((2,x))

scala> case class B(x: Int)
class B

scala> B(3).asTuple
val res2: Int = 3

scala> B(3).asTupleOption
val res3: Option[Int] = Some(3)