Packages

  • package root
    Definition Classes
    root
  • package net
    Definition Classes
    root
  • package liftweb
    Definition Classes
    net
  • package common
    Definition Classes
    liftweb
  • object HLists

    Basic support for heterogeneous lists, aka HLists.

    Basic support for heterogeneous lists, aka HLists.

    An HList can be constructed like so:

    import net.liftweb.common.HLists._
    
    trait Base
    case class Type1(value: String) extends Base
    case class Type2(otherValue: String) extends Base
    
    val myHList = Type1("Value") :+: Type2("Other Value") :+: HNil
    myHList match {
      case firstThing :+: secondThing :+: HNil =>
        println(firstThing.value)
        println(secondThing.otherValue)
    }

    Above, we see that the HList preserved the value of the types of its members, otherwise we wouldn't have been able to fetch value and otherValue, respectively.

    Trying the same thing with a list won't work:

    val myList = Type1("Value") :: Type2("Other Value") :: Nil
    myList match {
      case firstThing :: secondThing :: Nil =>
        // error: value value is not a member of Product with Serializable with Base
        println(firstThing.value)
    }

    This is because value is not defined in Base. The inferred type of the List has to be a common ancestor class or trait of Type1 and Type2, and no such type has a value method.

    Definition Classes
    common
  • :+:
  • HList
  • HListMethods
  • HNil
c

net.liftweb.common.HLists

HListMethods

implicit final class HListMethods[ListSoFar <: HList] extends AnyRef

Provides the methods that can be used on an HList. These are set apart here due to certain issues we can experience otherwise with the type variance on the :+: class.

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

Instance Constructors

  1. new HListMethods(hlist: ListSoFar)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def :+:[T](v: T): :+:[T, ListSoFar]
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. def length: Int

    The length of this HList; note that this is O(n) in the list of elements.

  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. final def notify(): Unit
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  17. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  18. def toString(): String
    Definition Classes
    AnyRef → Any
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped