Object

shapeless.record

Record

Related Doc: package record

Permalink

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 = Record(x = 23, y = "foo", z = true)
xyz('y) // == "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
Visibility
  1. Public
  2. All

Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. macro def applyDynamic(method: String)(rec: Any*): HList

    Permalink
  5. macro def applyDynamicNamed(method: String)(rec: Any*): HList

    Permalink
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. macro def selectDynamic(tpeSelector: String): Any

    Permalink
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  19. def toString(): String

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Dynamic

Inherited from AnyRef

Inherited from Any

Ungrouped