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 _$4 *: 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[_$5, s] => PropByProp[s, P] }
type Unapply[X <: RecordSchema] = X match { case EmptySchema => None.type case SchemaCons[p, s] => Some[(p, s)] }
type ValueAt[X <: RecordSchema, N <: Int] = X match { case EmptySchema => Nothing case SchemaCons[p, s] => N match { case 0 => PropertyValueType[p] case S[n] => ValueAt[s, n] } }

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

inline def empty: EmptySchema

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[S1 <: RecordSchema, P](inline schema: S1, inline property: P): IndexOfProp[P]
transparent inline def indicesOfProps[S1 <: RecordSchema, S2 <: RecordSchema](inline s1: S1, inline s2: S2): IndicesOfProps[S2]
transparent inline def valueAt[X <: RecordSchema, I <: Int](inline schema: X, inline i: I)(v: Values): ValueAt[X, I]