package tag
This code is from com.softwaremill.tagging
Tag instances with arbitrary types. The tags are usually empty trait
s. Tags have no runtime overhead and are only
used at compile-time for additional type safety.
For example:
class Berry() trait Black trait Blue val berry = new Berry() val blackBerry: Berry @@ Black = berry.taggedWith[Black] val blueBerry: Berry @@ Blue = berry.taggedWith[Blue] // compile error: val anotherBlackBerry: Berry @@ Black = blueBerry
Original idea by Miles Sabin, see: https://gist.github.com/milessabin/89c9b47a91017973a35f
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- tag
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected