Packages

  • package root
    Definition Classes
    root
  • package com
    Definition Classes
    root
  • package softwaremill
    Definition Classes
    com
  • package tagging

    Tag instances with arbitrary types.

    Tag instances with arbitrary types. The tags are usually empty traits. 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

p

com

softwaremill

package softwaremill

Ungrouped