RecordSchema

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

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 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 _$9 *: 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 Remove[P1 <: RecordProperty0, S <: RecordSchema] = S match { case EmptySchema => EmptySchema.type case SchemaCons[P1, st] => st case SchemaCons[pt, st] => SchemaCons[pt, Remove[P1, st]] }
type TupleToSchema[T <: Tuple] = T match { case EmptyTuple => EmptySchema case p *: t => SchemaCons[p, TupleToSchema[t]] }
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

transparent inline def constSchema[S <: RecordSchema]: S
transparent inline def indexOfProp[S1 <: RecordSchema, P <: RecordProperty0](inline schema: S1, inline property: P): IndexOfProp[P]
transparent inline def indicesOfProps[S1 <: RecordSchema, S2 <: RecordSchema](inline s1: S1, inline s2: S2): IndicesOfProps[S2]
infix transparent inline def prepend[S <: RecordSchema, P <: RecordProperty0](inline p: P, inline schema: S): SchemaCons[P, S]
transparent inline def removeDoesntWork[P1 <: RecordProperty0, S <: RecordSchema](inline p1: P1, inline schema: S): Remove[P1, S]
transparent inline def valueAt[X <: RecordSchema, I <: Int](inline schema: X, inline i: I)(v: Values): ValueAt[X, I]