shapeless.record

Record

object Record extends Dynamic

Records encoded as HLists of their value types intersected with the singleton types of their keys.

Record types may be written using a relatively concise syntax thanks to a trick due to Denys Shabalin (@den_sh) and Eugene Burmako (@xeno_by). We use a combination of selectDynamic and backticks to embed a type in a path which appears to the compiler as stable,

type Xyz = Record.`'x -> Int, 'y -> String, 'z -> Boolean`.T

The use of singleton-typed Symbols as keys would make this type extremely laborious to write out by hand.

There is also a mechanism for creating values of record types using Scala's named argument syntax. Values of the type just defined can be created as follows,

val xyz = Union(x = 23, y = "foo", z = true)
xyz.get('y) // == Some("foo")
Linear Supertypes
Dynamic, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Record
  2. Dynamic
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. def applyDynamic(method: String)(rec: Any*): HList

    Annotations
    @macroImpl( ... )
  7. def applyDynamicNamed(method: String)(rec: Any*): HList

    Annotations
    @macroImpl( ... )
  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  12. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  13. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  14. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  15. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  17. final def notify(): Unit

    Definition Classes
    AnyRef
  18. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  19. def selectDynamic(tpeSelector: String): Any

    Annotations
    @macroImpl( ... )
  20. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  21. def toString(): String

    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Dynamic

Inherited from AnyRef

Inherited from Any

Ungrouped