This Scala 3 library provides a support to easily define opaque types serializable using upickle.
- Scala >= 3.3.5
- Scala toolkit 0.7.0
Use with SBT
libraryDependencies += "org.encalmo" %% "opaque-type" % "0.9.2"
or with SCALA-CLI
//> using dep org.encalmo::opaque-type:0.9.2
A number of common opaque types is included as an example:
- Amount
- AmountDecimal
- AmountDecimalString
- AmountString
- Bps
- City
- Country
- Currency
- DateOfBirth
- EmailAddress
- Fee
- FirstName
- IsoDateString
- LastName
- LocalPhoneNumber
- Percentage
- PhoneNumber
- PhoneNumberCountryPrefix
├── .github
│ └── workflows
│ ├── pages.yaml
│ ├── release.yaml
│ └── test.yaml
│
├── .gitignore
├── .scalafmt.conf
├── Amount.scala
├── AmountDecimal.scala
├── AmountDecimalString.scala
├── AmountString.scala
├── Bps.scala
├── City.scala
├── Country.scala
├── Currency.scala
├── DateOfBirth.scala
├── EmailAddress.scala
├── Fee.scala
├── FirstName.scala
├── IPAddress.scala
├── IsoDateString.scala
├── LastName.scala
├── LICENSE
├── LocalPhoneNumber.scala
├── MathUtils.scala
├── MathUtils.test.scala
├── OpaqueType.scala
├── OpaqueType.test.scala
├── Percentage.scala
├── PhoneNumber.scala
├── PhoneNumberCountryPrefix.scala
├── project.scala
├── README.md
└── test.sh