RecordSchema

sealed trait RecordSchema

Schema of properties for a record R. We can use tuples and maps to represent instances of this schema.

Companion:
object
class Object
trait Matchable
class Any
object EmptySchema.type
class SchemaCons[P, S]

Type members

Types

Type of the concatenation of two schemas.

Type of the concatenation of two schemas.

type EitherValues[E] = ValuesMap[[V] =>> Either[E, V]]
type IndicesOfProps[S2 <: RecordSchema] = S2 match { case EmptySchema => EmptyTuple case SchemaCons[p, s] => IndexOfProp[p] *: IndicesOfProps[s] }

Returns the tuple made of indices of properties of another schema.

Returns the tuple made of indices of properties of another schema.

type OptionValues = ValuesMap[Option]
type PrependOtherSchema[S1 <: RecordSchema] = S1 match { case EmptySchema => RecordSchema case SchemaCons[p, s] => SchemaCons[p, PrependOtherSchema[s]] }

Type of the concatenation of two schemas.

Type of the concatenation of two schemas.

type Properties <: Tuple
type PropertiesMap[F[_]] = Map[Properties, F]

A type function that applies a given type function to each property.

A type function that applies a given type function to each property.

type ValueAt[I] = I match { case Int => ValueAt[RecordSchema, I] case Any => Nothing }

Simple tuple representing an instance of this schema.

Simple tuple representing an instance of this schema.

type ValuesMap[H[_]] = Map[Values, H]

Value members

Abstract methods

transparent inline def appendOtherSchema[S2 <: RecordSchema](inline s2: S2): AppendOtherSchema[S2]
def convertToMap(v: Values, m: Map[String, Any]): Map[String, Any]
def get[P2](p2: P2)(v: Values): Option[PropertyValueType[p2]]
transparent inline def projectorFrom[S1 <: RecordSchema](inline s1: S1): Values => Values
transparent inline def propertyGetter[This >: RecordSchema <: RecordSchema, P <: RecordProperty0](inline p: P): () => p
transparent inline def propertyUpdater[This >: RecordSchema <: RecordSchema, P <: RecordProperty0](inline p: P): () => p
transparent inline def remove[P1 <: RecordProperty0](inline p1: P1): Remove[p1]
transparent inline def replace[P1 <: RecordProperty0, P2 <: RecordProperty0](inline p1: P1, inline p2: P2): RecordSchema
transparent inline def transformEither[E]: EitherValues[E] => Either[List[E], Values]
transparent inline def transformOption: OptionValues => Option[Values]

Concrete methods

@targetName("SchemaCons")
inline def #:[P <: RecordProperty0, This >: RecordSchema <: RecordSchema](p: P): SchemaCons[P, This]
transparent inline def appendValues[S2 <: RecordSchema](inline schema2: S2)(inline schema3: AppendOtherSchema[S2]): (Values, Values) => Values
inline def concat[S2 <: RecordSchema](inline schema2: S2): Concat[RecordSchema, schema2]

Concatenates properties of another schema.

Concatenates properties of another schema.

transparent inline def concatValues[S2 <: RecordSchema](inline schema2: S2)(inline schema3: Concat[RecordSchema, schema2]): (Values, Values) => Values
transparent inline def getByIndex[I <: Int](inline i: I)(v: Values): ValueAt[I]
def getByIndexRuntime(i: Int)(v: Values): Any
transparent inline def indexOfProp[P2 <: RecordProperty0](inline p2: P2): IndexOfProp[p2]
transparent inline def indicesOfProps[S2 <: RecordSchema](inline s2: S2): IndicesOfProps[s2]
transparent inline def prependOtherSchema[S1 <: RecordSchema](inline s1: S1): PrependOtherSchema[S1]
transparent inline def prependValues[S1 <: RecordSchema](inline schema1: S1)(inline schema3: PrependOtherSchema[S1]): (Values, Values) => Values
transparent inline def projection[S2 <: RecordSchema](inline schema2: S2): Values => Values
transparent inline def rename[T, P1 <: RecordProperty[T], P2 <: RecordProperty[T]](inline p1: P1, inline p2: P2): RecordSchema

Replaces properties of the same type. A bit more restricted version of replace.

Replaces properties of the same type. A bit more restricted version of replace.

override def toString: String
Definition Classes
Any

Abstract fields

Extensions

Extensions

extension (values: Values)
transparent inline def apply[P <: RecordProperty0](inline p: P): PropertyValueType[p]
transparent inline def updated[P <: RecordProperty0](inline p: P)(inline v: PropertyValueType[p]): Values