ProductDeriver

org.hungerford.generic.schema.product.ProductDeriver$
See theProductDeriver companion trait

Attributes

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

Members list

Concise view

Type members

Types

type Aux[T, Tail <: Tuple, Out0] = ProductDeriver[T, Tail] { type Out = Out0; }
type DerivedPShape[T, R <: Tuple, RV <: Tuple] = ProductShape[T, R, RV, Nothing, Unit, Unit, RV => T]
type MirrorProduct[T, Elems <: Tuple, ElemLabels <: Tuple] = ProductOf[T] { type MirroredElemTypes = Elems; type MirroredElemLabels = ElemLabels; }

Value members

Concrete methods

def apply[T](using prd: ProductDeriver[T, EmptyTuple]): Aux[T, EmptyTuple, Out]

Givens

Givens

given given_ProductDeriver_T_TsTail[T <: Product, TsTail <: Tuple, L <: Tuple, RVt <: Tuple, LRV <: Tuple, Rt <: Tuple](using mirror: MirrorProduct[T, RVt, L], mirEv: NotGiven[mirror.type <:< Singleton], zip: Aux[L, RVt, LRV], fieldsDeriver: Aux[T, TsTail, LRV, RVt, Rt], valEv: CtxWrapTuplesConstraint[Tpe, Rt, RVt], uniq: UniqueFieldNames[Rt], cType: ProductConstructor[RVt => T, RVt, Nothing, T]): given_ProductDeriver_T_TsTail[T, TsTail, L, RVt, LRV, Rt]