RecordSchema

Companion:
class
trait Sum
trait Mirror
class Object
trait Matchable
class Any

Type members

Types

type #:[P <: RecordProperty0, S <: RecordSchema] = SchemaCons[P, S]
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 IndexOfTypeInTuple[T <: Tuple, A] = IndexOfTypeInTupleAux[T, A, 0]
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)] }

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from:
Mirror

Value members

Concrete methods

Type of the element at position N in the tuple X

Type of the element at position N in the tuple X

transparent inline def indexOfProp[X <: RecordSchema, P <: RecordProperty0](inline schema: X, inline property: P): IndexOfProp[P]