Lens

org.hungerford.generic.schema.utilities.Lens$
See theLens companion trait
object Lens

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Lens.type

Members list

Concise view

Type members

Types

type Aux[T, S, Selector, I, O, OT] = Lens[T, S, Selector, OT] { type Inner = I; type Out = O; }

Givens

Givens

given ambigFieldSelLens[T, Component, Sel, I, O, OT](using stl: Aux[T, Component, FieldSelector[Sel], I, O, OT]): ambigFieldSelLens[T, Component, Sel, I, O, OT]
given ambigSubtypeSelLens[T, Component, Sel, I, O, OT](using stl: Aux[T, Component, SubTypeSelector[Sel], I, O, OT]): ambigSubtypeSelLens[T, Component, Sel, I, O, OT]
given coproductTuple[T, R <: Tuple, RV <: Tuple, D, DN, SelHead, SelTail <: Tuple, HI, DV, N <: TypeName, HIS, I, O, OT](using crt: Aux[CoproductShape[T, R, RV, D, DN], SelHead, Subtype[T, HI, D, DN, DV, N, HIS]], hLens: Aux[T, CoproductShape[T, R, RV, D, DN], SelHead, HI, Option[HI], OT], tLens: => Aux[HI, HIS, SelTail, I, O, OT]): coproductTuple[T, R, RV, D, DN, SelHead, SelTail, HI, DV, N, HIS, I, O, OT]
given coproductTupleLazy[T, R <: Tuple, RV <: Tuple, D, DN, SelHead, SelTail <: Tuple, HI, DV, N <: TypeName, HIS, I, O, OT](using crt: Aux[CoproductShape[T, R, RV, D, DN], SelHead, LazySubtype[T, HI, D, DN, DV, N]], hiSch: Aux[HI, HIS], hLens: Aux[T, CoproductShape[T, R, RV, D, DN], SelHead, HI, Option[HI], OT], tLens: => Aux[HI, HIS, SelTail, I, O, OT]): coproductTupleLazy[T, R, RV, D, DN, SelHead, SelTail, HI, DV, N, HIS, I, O, OT]
given fieldLensAf[T, Sel <: Singleton, R <: Tuple, F, Fld <: Extr[T, F], RV <: Tuple, AF, AFS, AFE, C, OT](using ev: NotGiven[AF =:= Nothing], frt: Aux[Sel, R, Fld], pdc: Aux[T, (AFE, R), (Map[String, AF], RV)], fvr: Aux[Sel, R, RV, F], pcn: ProductConstructor[C, RV, AF, T]): fieldLensAf[T, Sel, R, F, Fld, RV, AF, AFS, AFE, C, OT]
given fieldLensNoAf[T, Sel <: Singleton, F, Fld <: Extr[T, F], R <: Tuple, RV <: Tuple, C, OT](using frt: Aux[Sel, R, Fld], pdc: Aux[T, R, RV], fvr: Aux[Sel, R, RV, F], pcn: ProductConstructor[C, RV, Nothing, T]): fieldLensNoAf[T, Sel, F, Fld, R, RV, C, OT]
given lastSelLense[T, Component, OT]: lastSelLense[T, Component, OT]
given productTupleSelector[T, R <: Tuple, RV <: Tuple, AF, AFS, AFE, C, SelHead, SelTail <: Tuple, HI, N <: TypeName, HIS, I, O, OT](using crt: Aux[ProductShape[T, R, RV, AF, AFS, AFE, C], SelHead, Field[T, HI, N, HIS]], hLens: Aux[T, ProductShape[T, R, RV, AF, AFS, AFE, C], SelHead, HI, HI, OT], tLens: => Aux[HI, HIS, SelTail, I, O, OT]): productTupleSelector[T, R, RV, AF, AFS, AFE, C, SelHead, SelTail, HI, N, HIS, I, O, OT]
given productTupleSelectorLazy[T, R <: Tuple, RV <: Tuple, AF, AFS, AFE, C, SelHead, SelTail <: Tuple, HI, N <: TypeName, HIS, I, O, OT, OTS](using crt: Aux[ProductShape[T, R, RV, AF, AFS, AFE, C], SelHead, LazyField[T, HI, N]], otSch: Aux[OT, OTS], hiSchExtr: Aux[HI, Aux[OT, OTS], HIS], hLens: Aux[T, ProductShape[T, R, RV, AF, AFS, AFE, C], SelHead, HI, HI, OT], tLens: => Aux[HI, HIS, SelTail, I, O, OT]): productTupleSelectorLazy[T, R, RV, AF, AFS, AFE, C, SelHead, SelTail, HI, N, HIS, I, O, OT, OTS]
given subtypeLens[T, Sel <: Singleton, N <: TypeName, R <: Tuple, STT, DV, ST <: OrLazy[T, STT, D, DN, DV, N], RV <: Tuple, D, DN, OT](using strt: Aux[Sel, R, ST]): subtypeLens[T, Sel, N, R, STT, DV, ST, RV, D, DN, OT]