Opaques
This is mini project to create opaque types, and companion objects.
It's Scala 3 only.
To install
libraryDependencies += "io.github.mercurievv.minuscles" % "opaques" % "0.1.1"
Use import
import io.github.mercurievv.minuscles.opaques.*
Let's create opaque type:
val UserName = Opaque.create[String]
// UserName: Opaque[String] = io.github.mercurievv.minuscles.opaques.Opaque$$anon$1@35cb32c7
type UserName = UserName.Opq
Now we will do some mappings:
Opaque object creation and getting back
val userName = UserName("MercurieVV")
// userName: Opq = "MercurieVV"
val userNameStr = UserName.unwrap(userName)
// userNameStr: String = "MercurieVV"
assert(userNameStr == "MercurieVV")