object RecordSchema
- Companion:
- class
Type members
Types
type Concat[X <: RecordSchema, Y <: RecordSchema] = X match {
case EmptySchema => Y
case SchemaCons[x1, xs1] => SchemaCons[x1, Concat[xs1, Y]]
}
Type of the concatenation of two schemas.
Type of the concatenation of two schemas.
type IndexOfTypeInTupleAux[T <: Tuple, A, N <: Int] = T match {
case EmptyTuple => Nothing
case A *: t => N
case _$2 *: t => IndexOfTypeInTupleAux[t, A, S[N]]
}
type PropAt[X <: RecordSchema, N <: Int] = X match {
case EmptySchema => Nothing
case SchemaCons[p, s] => N match {
case 0 => p
case S[n] => PropAt[s, n]
}
}
type PropByProp[X <: RecordSchema, P <: RecordProperty0] = X match {
case EmptySchema => Nothing
case SchemaCons[P, s] => P
case SchemaCons[_$3, s] => PropByProp[s, P]
}
type Unapply[X <: RecordSchema] = X match {
case EmptySchema => None.type
case SchemaCons[p, s] => Some[(p, s)]
}
Value members
Concrete methods
transparent inline def indexOfProp[X <: RecordSchema, P <: RecordProperty0](inline schema: X, inline property: P): IndexOfProp[P]