object Field
- Companion
- class
Type members
Types
type DropByLabel[Label, Fields <: Tuple] = Fields match {
case EmptyTuple => EmptyTuple
case Field[Label, tpe] *: tail => tail
case head *: tail => head *: DropByLabel[Label, tail]
}
type FromLabelsAndTypes[Labels <: Tuple, Types <: Tuple] = (Labels, Types) match {
case (EmptyTuple, EmptyTuple) => EmptyTuple
case (labelHead *: labelTail, typeHead *: typeTail) => Field[labelHead, typeHead] *: FromLabelsAndTypes[labelTail, typeTail]
}
type TypeForLabel[Label, Fields <: Tuple] = Fields match {
case EmptyTuple => Nothing
case Field[Label, tpe] *: tail => tpe
case head *: tail => TypeForLabel[Label, tail]
}