trait TupleBuilder extends AnyRef
A TupleBuilder abstracts the work of constructing a tuple data structure such as a TupleN or KList
and extracting values from it. The Instance macro implementation will (roughly) traverse the tree of its argument
and ultimately obtain a list of expressions with type M[T] for different types T.
The macro constructs an Input value for each of these expressions that contains the Type for T,
the Tree for the expression, and a ValDef that will hold the value for the input.
TupleBuilder.apply is provided with the list of Inputs and is expected to provide three values in the returned BuilderResult.
First, it returns the constructed tuple data structure Tree in input.
Next, it provides the type constructor representationC that, when applied to M, gives the type of tuple data structure.
For example, a builder that constructs a Tuple3 for inputs M[Int], M[Boolean], and M[String]
would provide a Type representing [L[x]] (L[Int], L[Boolean], L[String]). The input method
would return a value whose type is that type constructor applied to M, or (M[Int], M[Boolean], M[String]).
Finally, the extract method provides a list of vals that extract information from the applied input.
The type of the applied input is the type constructor applied to Id ([X] X).
The returned list of ValDefs should be the ValDefs from inputs, but with non-empty right-hand sides.
- Alphabetic
- By Inheritance
- TupleBuilder
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
Abstract Value Members
-
abstract
def
make(c: Context)(tcType: scala.reflect.macros.blackbox.Context.Type, inputs: Inputs[universe.type]): BuilderResult[c.type]
Constructs a one-time use Builder for Context
cand type constructortcType.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()