HKDSumExtraTypes

perspective.derivation.HKDSumExtraTypes
See theHKDSumExtraTypes companion trait

Attributes

Companion
trait
Source
hkdTypes.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Type members

Types

type NameOfImpl[Names, X, ElemTypes, Labels] = (ElemTypes, ElemTypes, Labels) match { case (X *: tt, th *: _$16, lh *: lt) => Eq[th, X] match { case true => lh & Names } case (th *: tt, _$17, lh *: lt) => NameOfImpl[Names, X, tt, lt] }

Attributes

Source
hkdTypes.scala

Value members

Concrete methods

def derivedImpl[A, ElemTypes <: Tuple, Label <: String](namesArr: IArray[String], namesSet: Set[String])(using m: SumOf[A] { type MirroredElemTypes = ElemTypes; type MirroredLabel = Label; }, typeLength: TypeLength[m.MirroredElemTypes]): HKDSumExtraTypes[A] { type TupleRep = ElemTypes; type Gen = [F[_]] =>> ProductK[F, this.TupleRep]; type Index = [_] =>> Finite[typeLength.Length]; type Names = TupleUnionLub[m.MirroredElemLabels, String, Nothing]; type ElemTop = TupleUnionLub[this.TupleRep, A, Nothing]; type FieldOf = [Name <: this.Names] =>> FieldOfImpl[Name, this.ElemTop, this.TupleRep, m.MirroredElemLabels]; }

Attributes

Source
hkdTypes.scala

Givens

Givens

transparent inline given derived[A](using m: SumOf[A], typeLength: TypeLength[m.MirroredElemTypes]): HKDSumExtraTypes[A]

Attributes

Source
hkdTypes.scala