Builder

abstract class Builder[V <: ([_ <: HList] =>> HList), Ptrs[_ <: HList, _ <: HList], N <: ([_ <: Nat] =>> Nat)]
class Object
trait Matchable
class Any
Builder[V, Ptrs, N]

Type members

Types

type Next[B, T <: HList] = V[B :: T]
type NextN[M <: Nat] = N[Succ[M]]
type NextPtrs[B, T <: HList, PT <: HList] = Ptrs[B :: T, Aux[V[B :: T], N[_0], B] :: PT]

Value members

Abstract methods

protected def length[T <: HList](implicit lt: Length[T]): Aux[V[T], N[Out]]
protected def nToInt[M <: Nat](implicit m: ToInt[M]): ToInt[N[M]]
protected def pointers[T <: HList, PT <: HList](pt: PT): Ptrs[T, PT]
protected def ptr[T <: HList, I <: Nat, X](implicit ptr: Aux[T, I, X]): Aux[V[T], N[I], X]

Concrete methods

def apply[B]: Builder[[T <: HList] =>> Next[B, T], [T <: HList, PT <: HList] =>> NextPtrs[B, T, PT], NextN]
def build(f: Ptrs[HNil, HNil] => NonEmptyList[RelChoice[V[HNil], _ <: HList]]): Pattern[V[HNil]]