Package

org.hammerlab.shapeless

record

Permalink

package record

Visibility
  1. Public
  2. All

Type Members

  1. trait Field[C, K] extends Serializable

    Permalink

    Type-class for recursively selecting a field K in an object C

    Type-class for recursively selecting a field K in an object C

    Example:

    case class A(n: Int)
    case class B(s: String)
    case class C(a: A, b: B)
    
    val c = C(A(123), B("abc"))
    
    c.field('a)  // A(123)
    c.field('b)  // B("abc")
    c.field('n)  // 123
    c.field('s)  // "abc"
    c.field('x)  // doesn't compile
  2. trait Find[C, K <: Symbol, V] extends Serializable

    Permalink

    Type-class for recursively selecting a field K with value V in an object C

    Type-class for recursively selecting a field K with value V in an object C

    Example:

    case class A(n: Int)
    case class B(s: String)
    case class C(a: A, b: B)
    
    val c = C(A(123), B("abc"))
    
    c.find[A]('a)       // A(123)
    c.find[B]('b)       // B("abc")
    c.find[Int]('n)     // 123
    c.find[String]('s)  // "abc"
    
    c.find[Int]('x)     // doesn't compile
    c.find[Int]('s)     // doesn't compile
  3. trait HasFieldOps extends AnyRef

    Permalink
  4. trait HasFindOps extends AnyRef

    Permalink
  5. trait LowPriField extends AnyRef

    Permalink
  6. trait LowPriFind extends AnyRef

    Permalink

Value Members

  1. object Field extends LowPriField with Serializable

    Permalink
  2. object Find extends LowPriFind with Serializable

    Permalink

Ungrouped