Packages

  • package root
    Definition Classes
    root
  • package wvlet
    Definition Classes
    root
  • package airframe
    Definition Classes
    wvlet
  • package surface

    Definition Classes
    airframe
  • package tag

    This code is from com.softwaremill.tagging

    This code is from com.softwaremill.tagging

    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

    Definition Classes
    surface
  • Tagger

package tag

This code is from com.softwaremill.tagging

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

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. tag
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. type @@[T, +U] = T with Tag[U]
  2. type Tag[+U] = AnyRef { type Tag <: U }
  3. type Tagged[T, +U] = T with Tag[U]
  4. implicit class Tagger[T] extends AnyRef

Value Members

  1. implicit def toTaggedType[A, Tag](obj: A): @@[A, Tag]

Inherited from AnyRef

Inherited from Any

Ungrouped