Internal library to define convenient newtypes.
Incubated in various versions in the following projects:
JVM | Scala.js (1.x) | Scala Native (0.4.x) | |
---|---|---|---|
Scala 3.2.x | ✅ | ✅ | ✅ |
See tests for usage.
Coordinates:
"com.indoorvivants" %%% "opaque-newtypes" % "<version>" // SBT
"com.indoorvivants::opaque-newtypes::<version>" // Mill, Scala CLI
What does "internal" mean?
It means that version compatibility is not enforced, the usage patterns are tailored for how I see things, and in general I would alter things at will with little to know consideration for downstream users - it being internal, I assume myself to be the target audience.
That said, I welcome (and will gladly give credit) all cool ideas and contributions. To balance those two seemingly opposite intentions, I strive to keep the licence as permissive as possible and the code structure as conducive to copypasta as possible.
The reason it's public is because I'm already paying more than I want for private Github Actions minutes and it's eating rapidly into my family's food budget (joke).