ProductShape

org.hungerford.generic.schema.product.ProductShape
case class ProductShape[T, Rt <: Tuple, RVt <: Tuple, AFt, AFSt, AFEt, C](fieldDescriptions: Rt, additionalFieldsSchema: Aux[AFt, AFSt], afExtractor: AFEt, constructor: C)(using fieldsConstraint: CtxWrapTuplesConstraint[Tpe, Rt, RVt], uniqueFields: UniqueFieldNames[Rt], prodConst: ProductConstructor[C, RVt, AFt, T], afExtrEv: ValidAfExtr[T, AFt, AFEt])

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Types

type AF = AFt
type AFE = AFEt
type AFS = AFSt
type Cons = C
type ProductType = ProductShape[T, R, RV, AF, AFS, AFE, C]
type R = Rt
type RV = RVt

Value members

Concrete methods

def construct: C
def deconstruct(value: T)(using dec: ProductDeconstructor[T, (AFE, R)]): Res
def extract(value: T)(using decons: ProductDeconstructor[T, (AFE, R)]): Res
def extractAdditionalFields(value: T)(using ev: AFE =:= T => Map[String, AF]): Map[String, AF]
def extractNamedFields(value: T)(using decons: ProductDeconstructor[T, R]): Res
def getField[N <: FieldName](fieldName: N, from: T)(using fg: FieldGetter[N, R, RV], pd: Aux[T, R, RV]): Out

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product

Concrete fields

lazy val fieldNames: Set[String]
lazy val size: Int